Version: 2022.3

PrefabUtility.ApplyPrefabInstances

切换到手册
public static void ApplyPrefabInstances (GameObject[] instanceRoots, InteractionMode action);

参数

instanceRoots The roots of the given Prefab instances.
action 此操作的交互模式。

描述

Applies all overrides from a list of Prefab instances to their Prefab Assets.

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

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

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

When applying all modifications to a Prefab Asset using this method to nested Prefabs or Prefab variants, the changes are always applied to the outermost Prefab. To apply changes to inner Prefabs, you can use the other methods such as PrefabUtility.ApplyAddedComponent, PrefabUtility.ApplyAddedGameObject, PrefabUtility.ApplyRemovedComponent, PrefabUtility.ApplyRemovedGameObject and PrefabUtility.ApplyObjectOverride.

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

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

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