label | 枚举标志字段前面显示的可选标签。 |
enumValue | 枚举标志值。 |
style | 可选的 GUIStyle。 |
options | 指定额外布局属性的可选布局选项列表。此处传递的任何值都将覆盖由style 定义的设置。其他资源:GUILayout.Width、GUILayout.Height、GUILayout.MinWidth、GUILayout.MaxWidth、GUILayout.MinHeight、GUILayout.MaxHeight、GUILayout.ExpandWidth、GUILayout.ExpandHeight。 |
includeObsolete | 设置为 true 以包含具有 ObsoleteAttribute 的 Enum 值。设置为 false 以排除具有 ObsoleteAttribute 的 Enum 值。 |
Enum 用户修改的枚举标志值。这是一个选择位掩码,其中每一位表示一个 Enum 值索引。(请注意,此返回值本身不是 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)EditorGUILayout.EnumFlagsField(m_Flags); } }