public static Object InstantiatePrefab (Object assetComponentOrGameObject);
public static Object InstantiatePrefab (Object assetComponentOrGameObject, SceneManagement.Scene destinationScene);


targetPrefab Asset to instantiate.
destinationSceneScene to instantiate the Prefab in.


Object The GameObject at the root of the Prefab.


Instantiates the given Prefab in a given Scene.

This is similar to Instantiate but creates a Prefab connection to the Prefab. If a Scene handle is not given the Prefab is instantiated in the active Scene.

using UnityEngine;
using UnityEditor;

public class Example : EditorWindow { [MenuItem("Examples/Instantiate Selected")] static void CreatePrefab() { GameObject clone = PrefabUtility.InstantiatePrefab(Selection.activeObject as GameObject) as GameObject; }

[MenuItem("Examples/Instantiate Selected", true)]

static bool ValidateCreatePrefab() { GameObject go = Selection.activeObject as GameObject; if (go == null) return false;

return PrefabUtility.GetPrefabType(go) == PrefabType.Prefab || PrefabUtility.GetPrefabType(go) == PrefabType.ModelPrefab; } }