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.ApplyAddedComponent、PrefabUtility.ApplyAddedGameObject、PrefabUtility.ApplyPropertyOverride、PrefabUtility.ApplyRemovedComponent、PrefabUtility.ApplyPrefabInstance、PrefabUtility.ApplyRemovedGameObject。