Version: 2019.2
public static void ApplyRemovedComponent (GameObject instanceGameObject, Component assetComponent, InteractionMode action);


instanceGameObjectThe GameObject on the Prefab instance which the component has been removed from.
assetComponentThe component on the Prefab Asset corresponding to the removed component on the instance.
actionThe interaction mode for this action.


Removes the component from the Prefab Asset which has the component on it.

When a component is removed from a Prefab instance, that modification is a type of Instance Override. The act of applying the change (the removal of the component) to the Prefab means the component is removed from the Prefab Asset itself, and is no longer an override on the Prefab instance.

This method allows you to apply a "removed component" change to an existing Prefab. It mirrors the functionality in the editor, described in the user manual here. To use this method, you must first remove a component from an existing Prefab instance.

When applying a removed component 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 component was removed from a GameObject that is part of a nested Prefab instance, 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.ApplyAddedGameObject, PrefabUtility.ApplyAddedGameObject, PrefabUtility.ApplyObjectOverride, PrefabUtility.ApplyPropertyOverride, PrefabUtility.ApplyPrefabInstance.