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

PrefabUtility.ApplyObjectOverride

提出更改建议

成功!

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

关闭

提交失败

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

关闭

取消

声明

public static void ApplyObjectOverride(Object instanceComponentOrGameObject, string assetPath, InteractionMode action);

参数

instanceComponentOrGameObject 要应用的 Prefab 实例的组件或 GameObject。
assetPath 要应用的 Prefab 资源的路径。
action 此操作的交互模式。

说明

将 Prefab 实例组件或 GameObject 上所有重写的属性应用到给定资源路径的 Prefab 资源。

此方法允许你对现有 Prefab 应用修改后的属性值。它反映了编辑器中的功能,如 此处说明的用户手册。如需使用此方法,你必须先修改现有 Prefab 实例中的一个或多个属性值。

如果将 GameObject 作为 object 参数传递,则只应用 GameObject 自身的重写(如图层、标记和静态标记);而不应用它的组件或子 GameObject。如果将 Component 作为 object 参数传递,则只应用该组件上的重写。如需应用 Prefab 的所有重写,可以使用 PrefabUtility.ApplyPrefabInstance

Prefab 实例上的修改后属性值是 实例重写 的一种类型。将修改后的属性值应用到 Prefab 的行为意味着修改后的值将成为 Prefab 资源的一部分,不再是重写。

当向 Prefab 资源应用修改的属性值时,您必须提供资源路径作为参数。这是因为在某些情况下,有多个目标可以选择对其应用更改。例如,如果属性值在属于 嵌套 Prefab 的 GameObject 上被修改,则您可能可以选择将更改应用于内部嵌套 Prefab 资源或外部根 Prefab 资源。因此,通过指定资源路径,可以明确地告诉 Unity 应该将更改应用于哪个 Prefab 资源。

您可以在用户手册中阅读有关 应用目标选择 的更多信息。

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