PrefabUtility.FindAllInstancesOfPrefab
Declaration
public static GameObject[] FindAllInstancesOfPrefab(GameObject prefabRoot);public static GameObject[] FindAllInstancesOfPrefab(GameObject prefabRoot, SceneManagement.Scene scene);Параметры
| Параметр | Описание |
|---|---|
| prefabRoot | Корневой GameObject ресурса Префаб. |
| сцена | Сцена для поиска экземпляров Префаб. Указанная сцена должна быть действительной и загруженной. |
Возвращаемое значение
GameObject[] Корень GameObjects для всех экземпляров ассета Префаб с корнем prefabRoot.
Описание
Получает корень GameObjects для всех экземпляров ассета Префаб с корнем prefabRoot, найденных во всех загружаемых сценах. Если prefabRoot не является действительным корнем ассета Префаб GameObject, выводится ArgumentException.
FindAllInstancesOfPrefab не возвращает вложенные экземпляры Префаб.
using UnityEditor; using UnityEngine; using UnityEngine.SceneManagement; using NUnit.Framework;
public class Example : MonoBehaviour { public GameObject prefabAssetRoot; private void Start() { var expectedInstance = (GameObject)PrefabUtility.InstantiatePrefab(prefabAssetRoot); var instances = PrefabUtility.FindAllInstancesOfPrefab(prefabAssetRoot); Assert.AreEqual(1, instances.Length); Assert.AreEqual(expectedInstance, instances[0]); } }
Описание
Возвращает корень GameObjects для всех экземпляров ассета Префаб с корнем prefabRoot, найденных в scene. Если prefabRoot не является действительным корнем ассета Префаб GameObject, или scene не является действительным и загруженным, выводится ArgumentException.
FindAllInstancesOfPrefab не возвращает вложенные экземпляры Префаб.
using UnityEditor; using UnityEngine; using UnityEngine.SceneManagement; using NUnit.Framework;
public class Example : MonoBehaviour { public GameObject prefabAssetRoot; private void Start() { var expectedInstance = (GameObject)PrefabUtility.InstantiatePrefab(prefabAssetRoot); var instances = PrefabUtility.FindAllInstancesOfPrefab(prefabAssetRoot, SceneManager.GetActiveScene()); Assert.AreEqual(1, instances.Length); Assert.AreEqual(expectedInstance, instances[0]); } }