Version: 2022.1

PrefabUtility.ApplyPrefabInstance

切换到手册
public static void ApplyPrefabInstance (GameObject instanceRoot, InteractionMode action);

参数

instanceRoot 给定预制件实例的根。
action 此操作的交互模式。

描述

将预制件实例上的所有重载应用于其预制件资源。

This method allows you to apply the complete modified state of a Prefab instance to its source Prefab Asset, which includes all property overrides, added and removed components, and added child GameObjects (including added child Prefab instances).

它对应了编辑器重载菜单中的“Apply All”按钮的功能。要使用此方法,必须首先在某些方面修改现有预制件实例(例如,修改属性,或者添加、删除游戏对象或组件)。

尚未应用的预制件实例修改被称为实例重载。应用修改的行为意味着修改成为预制件资源的一部分,并且不再是重载。

使用该方法将预制件资源的所有修改应用于嵌套预制件或预制件变体时,这些更改始终应用于最外面的预制件。若要将更改应用于内部预制件,可以使用其他方法,比如 PrefabUtility.ApplyAddedComponentPrefabUtility.ApplyAddedGameObjectPrefabUtility.ApplyRemovedComponentPrefabUtility.ApplyObjectOverride

无法应用预制件实例中根游戏对象的变换位置和旋转,也无法应用其他默认重载属性。

用户手册中介绍了有关修改预制件实例以及向其应用更改的更多信息。

另请参阅:PrefabUtility.ApplyAddedComponentPrefabUtility.ApplyAddedGameObjectPrefabUtility.ApplyObjectOverridePrefabUtility.ApplyPropertyOverridePrefabUtility.ApplyRemovedComponent