Version: 2020.2
LanguageEnglish
  • C#

PrefabUtility.ApplyAddedGameObject

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 void ApplyAddedGameObject(GameObject gameObject, string assetPath, InteractionMode action);

Parameters

gameObject The added GameObject on the Prefab instance to apply.
assetPath The path of the Prefab Asset to apply to.
action The interaction mode for this action.

Description

Applies the added GameObject to the Prefab Asset at the given asset path.

This method allows you to apply an added GameObject to an existing Prefab. It mirrors the functionality in the editor, described in the user manual here. To use this method, you must first add a GameObject to an existing Prefab instance.

An added GameObject is a type of Instance Override. The act of applying the added GameObject to the Prefab means the GameObject becomes part of the Prefab Asset, and is no longer an override on the Prefab instance.

When applying an added GameObject to a Prefab Asset, you must supply the asset path as a parameter. This is because there are some situations where there are multiple possible targets to apply the change to. For example, if the added GameObject has been added to a GameObject that is part of a nested Prefab, you may have the choice of applying the change to the inner nested Prefab Asset, or to the outer root Prefab Asset. Therefore, by specifying the asset path, you make it clear to Unity which Prefab Asset the change must be applied to.

You can read more in the user manual about the choice of apply targets.

See Also: PrefabUtility.ApplyAddedComponent, PrefabUtility.ApplyObjectOverride, PrefabUtility.ApplyPropertyOverride, PrefabUtility.ApplyRemovedComponent, PrefabUtility.ApplyPrefabInstance.