PrefabUtility.InstantiatePrefab
Declaration
public static Object InstantiatePrefab(Object assetComponentOrGameObject);public static Object InstantiatePrefab(Object assetComponentOrGameObject, SceneManagement.Scene destinationScene);Параметры
| Параметр | Описание |
|---|---|
| assetComponentOrGameObject | Префаб Ассет для экземплярирования. |
| destinationScene | Scene для создания экземпляра Префаб. |
Возвращаемое значение
Объект GameObject в корне Префаб.
Описание
Создает экземпляр заданной Префаб в заданной Scene.
Это похоже на Instantiate, но создает соединение Префаб с Префаб. Если вы не указываете Scene, то Префаб инстанцируется в активном Scene.
Примечание: Не следует инстанцировать Префабы из метода OnValidate() или Awake(). Это потому, что порядок, в котором GameObjects пробуждается, не является детерминированным, и поэтому может привести к неожиданному поведению. Если вы попробуете это сделать, Unity вызовет предупреждение "SendMessage не может быть вызван во время Awake, CheckConsistency или OnValidate".
using UnityEngine; using UnityEditor;
public class Example { [MenuItem("Examples/Instantiate Selected")] static void InstantiatePrefab() { Selection.activeObject = PrefabUtility.InstantiatePrefab(Selection.activeObject as GameObject); }
[MenuItem("Examples/Instantiate Selected", true)] static bool ValidateInstantiatePrefab() { GameObject go = Selection.activeObject as GameObject; if (go == null) return false;
return PrefabUtility.IsPartOfPrefabAsset(go); } }