Version: 2021.1

PrefabUtility.IsDefaultOverride

切换到手册
public static bool IsDefaultOverride (PropertyModification modification);

参数

modification 相关属性的修改。

返回

bool 如果该属性是默认重载,则为 true。

描述

如果将给定修改视为默认重载,则返回 true。

将预制件实例的根游戏对象上的某些属性视为默认覆盖。这些属性在默认情况下会被覆盖,通常很少应用或还原。大多数应用和还原操作将忽略默认覆盖。

默认重载为:

Root GameObject - name

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

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

这些属性是默认重载,从而防止在应用或还原整个预制件实例时出现常见错误。通常,您不会希望预制件实例的位置和旋转从预制件资源本身的位置和旋转中获得更新。属于默认重载的大多数其他属性本质上相似,因为它们与实例的基本对齐相关。

对预制件实例使用“Apply All”或“Revert All”不会影响默认重载。应用或还原默认重载的唯一方法是使用属性本身的上下文菜单。这对应于方法 PrefabUtility.ApplyPropertyOverridePrefabUtility.RevertPropertyOverride

由于这些方法不受大多数应用和还原操作的影响,因此覆盖的默认覆盖不会像覆盖的其他属性那样在检视面板中获得蓝色边距。它们也不会在 Overrides 下拉选单中显示为覆盖。不过它们在覆盖时为粗体,以便可以判断它们是否覆盖。

只有最外层预制件实例的根游戏对象(及其 Transform/RectTransform),才存在默认重载。这包括其他预制件内的最外层预制件实例(如预制件模式中所示)。