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

PrefabUtility.IsDefaultOverride

提出建议

成功!

感谢您帮助我们提升 Unity 文档的质量。虽然我们无法接受所有提议,但的确会阅读来自用户的所有建议变更,并在适用情况下进行更新。

关闭

提交失败

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

关闭

取消

声明

public static bool IsDefaultOverride(PropertyModification modification);

参数

modification 所讨论属性的修改部分。

返回值

bool 为 True 表示该属性是默认覆盖项。

描述

当指定修改项被视为 default override 时返回 true。

Prefab 实例的根 GameObject 上的特定属性被视为 default override。这些属性默认被覆盖,通常很少被应用或复原。大多数应用和复原操作都将忽略 default override。

Default override 为:

根 GameObject - 名称

根 Transform - localPosition - localRotation - localEulerAnglesHint(内部属性)- rootOrder(内部属性)

根 RectTransform - 与 Transform 中相同的属性 - anchoredPosition - sizeDelta - anchorMin - anchorMax - pivot

这些属性为了防止在应用或复原整个 Prefab 实例时出现常见错误而采用 default override。一般而言,您不希望 Prefab 实例的位置和旋转从 Prefab Asset 本身的位置和旋转获取更新。采用 default override 的大部分其他属性本质上类似于与实例的基本对齐方式。

对 Prefab 实例使用全应用或全复原不会影响 default override。应用或复原 default override 的唯一方法是对属性本身使用上下文菜单。这对应于方法 PrefabUtility.ApplyPropertyOverridePrefabUtility.RevertPropertyOverride

由于它们不受大多数应用和恢复操作的影响,因此,覆盖的默认覆盖在 Inspector 中不会像其他覆盖的属性那样获得蓝色边距。它们也不会在 Overrides 下拉菜单中显示为覆盖。但是,当它们被覆盖时,它们将变为粗体,以便能够了解它们是否被覆盖。

默认覆盖仅存在于最外层预制实例中的根 GameObject(以及其 Transform/RectTransform)。这包括其他预制中位于最外层的预制实例,如在预制模式中看到的那样。