Unity 6.3
0 онлайн 0 гостей 3 в системе
Вход

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]); } }