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

PrefabUtility.ApplyPrefabInstance

建议更改

成功!

感谢您帮助我们提高 Unity 文档质量。虽然我们无法接受所有提交,但我们会阅读来自用户的每条建议的更改,并在需要时进行更新。

关闭

提交失败

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

关闭

取消

声明

public static void ApplyPrefabInstance(GameObject instanceRoot, InteractionMode action);

参数

instanceRoot 给定 Prefab 实例的根目录。
action 此操作的交互模式。

说明

将 Prefab 实例上的所有覆盖内容应用到其 Prefab 资源。

此方法允许将 Prefab 实例的完整修改状态应用到其源 Prefab 资源,其中包括所有属性覆盖、添加和删除的组件及添加的子游戏物体(包括添加的子 Prefab 实例)。

它与编辑器中覆盖菜单中“应用全部”按钮的功能相同。要使用此方法,必须首先以某种方式修改现有的 Prefab 实例,例如修改属性或添加或删除游戏物体或组件。

尚未应用到 Prefab 实例上的修改被称为实例覆盖内容。应用修改意味着修改将成为 Prefab 资源的一部分,不再是覆盖内容。

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

不能应用 Prefab 实例中根游戏物体的变换位置和旋转,也不能应用其他默认覆盖属性。

您可以在用户手册中阅读更多关于修改预制件实例并应用更改的内容

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