版本:Unity 6 (6000.0)
语言英语
  • C#

PrefabUtility.ApplyPrefabInstances

建议更改

成功!

感谢您帮助我们提高 Unity 文档质量。虽然我们无法接受所有提交的内容,但我们会阅读用户提出的每项建议更改,并会适当地进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请在几分钟后重试。感谢您抽出时间帮助我们提高 Unity 文档质量。

关闭

取消

声明

public static void ApplyPrefabInstances(GameObject[] instanceRoots, InteractionMode action);

参数

instanceRoots 指定预制实例的根。
action 此操作的交互模式。

说明

将预制实例列表中的所有覆盖应用到其预制资源。

此方法允许您将预制实例的完整修改状态应用到其源预制资源,包括所有属性覆盖、添加和移除的组件,以及添加的子游戏对象(包括添加的子预制实例)。

它反映了编辑器中覆盖菜单中的“全部应用”按钮的功能。要使用此方法,您必须首先以某种方式修改现有的预制实例,例如修改属性或添加或移除游戏对象或组件。

尚未应用的对预制实例所做的修改称为实例覆盖。应用修改的行为意味着修改成为预制资源的一部分,不再是覆盖。

当使用此方法将所有修改应用到嵌套预制或预制变体的预制资源时,更改始终应用于最外层的预制。要对内部预制应用更改,您可以使用其他方法,例如 PrefabUtility.ApplyAddedComponentPrefabUtility.ApplyAddedGameObjectPrefabUtility.ApplyRemovedComponentPrefabUtility.ApplyRemovedGameObjectPrefabUtility.ApplyObjectOverride

无法应用预制实例中根游戏对象的 Transform 位置和旋转,也无法应用其他默认覆盖属性。

您可以在用户手册中阅读更多内容,了解如何修改和应用 Prefab 实例的更改

其他资源:PrefabUtility.ApplyPrefabInstancePrefabUtility.ApplyAddedComponentPrefabUtility.ApplyAddedGameObjectPrefabUtility.ApplyObjectOverridePrefabUtility.ApplyPropertyOverridePrefabUtility.ApplyRemovedComponentPrefabUtility.ApplyRemovedGameObject