Объявление
public static Object InstantiatePrefab(Object assetComponentOrGameObject);public static Object InstantiatePrefab(Object assetComponentOrGameObject, SceneManagement.Scene destinationScene);
Параметры
target | Сборный актив для создания экземпляра. |
destinationScene | Сцена для создания префаба в. |
Возвращает
Object GameObject в корне префаба.
Описание
Создает экземпляр данного префаба в заданной сцене.
Это похоже на Instantiate, но создает соединение Prefab с Prefab. Если вы не укажете дескриптор сцены, префаб создается в активной сцене.
Примечание. Не следует создавать префабы из 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);
}
}