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

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