public static GameObject SaveAsPrefabAsset (GameObject root, string assetPath);


rootThe GameObject to save as a Prefab.
assetPathThe path to save the Prefab at.


Use this function to create a Prefab Asset at the given path from the given GameObject including any childen in the Scene without modifying the input objects.

In case some of the children are Prefab instances they will automatically become nested inside the new Prefab.

The input object has to be a plain GameObject or the outermost root of a Prefab Instance.

If the input object is a Prefab instance root the resulting Prefab will be a Variant Prefab. Should you in this case actually want to create a new unique Prefab you need to unpack the instance first.

See Also: SaveAsPrefabAssetAndConnect, UnpackPrefabInstance.