position | 屏幕上用于枚举标志字段的矩形。 |
label | 可选标签,显示在枚举标志字段前面。 |
enumValue | 枚举标志值(仅支持底层类型为 int 的枚举类型的枚举值)。 |
style | 可选的 GUIStyle。 |
includeObsolete | 设置为 true 以包含具有 ObsoleteAttribute 的枚举值。设置为 false 以排除具有 ObsoleteAttribute 的枚举值。 |
Enum 用户修改的枚举标志值。这是一个选择位掩码,其中每一位表示一个枚举值索引。(请注意,此返回值本身不是枚举)。
单击时显示一个菜单,其中包含枚举类型每个值的选项。始终在菜单顶部显示值为 0
且名称为“Nothing”的选项,以及值为 ~0
(即所有位都设置)且名称为“Everything”的选项。可以通过在枚举类型中定义这些值来覆盖值 0
和 ~0
的名称。
注意:此方法仅支持其底层类型受 Unity 序列化系统支持的枚举(sbyte、short、int、byte、ushort 或 uint)。对于由无符号类型支持的枚举,“Everything”选项应具有对应于所有位都设置的值(即在未经检查的环境中为 ~0
或该类型的 MaxValue
常量)。
显示枚举标志字段的简单编辑器窗口。
using UnityEditor; using UnityEngine;
class EnumFlagsFieldExample : EditorWindow { enum ExampleFlagsEnum { None = 0, // Custom name for "Nothing" option A = 1 << 0, B = 1 << 1, AB = A | B, // Combination of two flags C = 1 << 2, All = ~0, // Custom name for "Everything" option }
ExampleFlagsEnum m_Flags;
[MenuItem("Examples/EnumFlagsField Example")] static void OpenWindow() { GetWindow<EnumFlagsFieldExample>().Show(); }
void OnGUI() { m_Flags = (ExampleFlagsEnum)EditorGUI.EnumFlagsField(new Rect(5, 5, 300, 20), m_Flags); } }