assetComponentOrGameObject | 要实例化的预制体资源。 |
destinationScene | 要实例化预制体的场景。 |
Object 预制体的根 GameObject。
在给定的场景中实例化给定的预制体。
这类似于 Instantiate,但会创建与预制体的预制体连接。如果您没有指定场景句柄,则预制体将在活动场景中实例化。
注意: 您不应该从 OnValidate() 或 Awake() 方法实例化预制体。这是因为 GameObject 唤醒的顺序不是确定性的,因此会导致意外行为。如果您尝试这样做,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); } }