Version: 2018.3 (switch to 2019.1)
LanguageEnglish
  • C#

PrefabUtility.SaveAsPrefabAsset

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

public static GameObject SaveAsPrefabAsset(GameObject instanceRoot, string assetPath);
public static GameObject SaveAsPrefabAsset(GameObject instanceRoot, string assetPath, out bool success);

Parameters

instanceRootThe GameObject to save as a Prefab Asset.
assetPathThe path to save the Prefab at.
successThe result of the save action, either successful or unsuccessful. Use this together with the console log to get more insight into the save process.

Returns

GameObject The root GameObject of the saved Prefab Asset, if available.

Description

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 Asset.

The input object has to be a plain GameObject or the outermost root of a Prefab Instance. It cannot be a child inside 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.

The returned object is the root GameObject of the saved Prefab Asset, if available. If the editor in currently in the middle of an asset editing batch operation, as controlled with AssetDatabase.StartAssetEditing and AssetDatabase.StopAssetEditing, assets are not immediately imported upon being saved. In this case, SaveAsPrefabAsset will return null even if the save was successful because the saved Prefab Asset was not yet reimported and thus not yet available.

See Also: SaveAsPrefabAssetAndConnect, UnpackPrefabInstance.

Did you find this page useful? Please give it a rating: