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

PrefabUtility.ApplyPropertyOverride

建议更改

成功!

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

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public static void ApplyPropertyOverride(SerializedProperty instanceProperty, string assetPath, InteractionMode action);

参数

instanceProperty 表示要应用的属性的 SerializedProperty。
assetPath 要应用到的预制资源文件的路径。
action 此操作的交互模式。

描述

将预制实例上的单个覆盖属性应用到给定资源路径处的预制资源文件。

此方法允许您将单个修改后的属性值应用到现有的预制资源文件。它反映了编辑器中的功能,如此处用户手册中所述。要使用此方法,您必须首先修改现有预制实例上的属性值。

预制实例上的修改后的属性值是一种实例覆盖。将修改后的属性值应用到预制资源文件意味着修改后的值成为预制资源文件的一部分,并且不再是预制实例上的覆盖。

将修改后的属性值应用到预制资源文件时,必须提供资源路径作为参数。这是因为在某些情况下,有多个可能的应用目标。例如,如果属性值已在作为嵌套预制资源一部分的 GameObject 上修改,则可以选择将更改应用到内部嵌套的预制资源文件或外部根预制资源文件。因此,通过指定资源路径,您可以清楚地告诉 Unity 必须将更改应用到哪个预制资源文件。

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

请注意,您可以使用此方法应用默认覆盖属性,这与其他应用方法不同,其他应用方法不会应用默认覆盖属性。

如果属性是数组元素,并且相应的数组元素在预制资源文件中不存在(因为数组在那里较短),则 ApplyPropertyOverride 会应用整个数组。如果 InteractionMode 设置为 UserAction,则 Unity 会显示一个对话框,其中提供继续或取消的选项。

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