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 附带枚举值。设置为 false 将使 ObsoleteAttribute 不附带枚举值。 |
Enum 用户修改的枚举标志值。这是一个选择位掩码,其中每个位代表一个枚举值索引。(请注意,此返回值不是枚举本身。)
单击后,系统会为枚举类型的每个值显示带有选项的菜单。
An option for the value 0
with name "Nothing" and an option for the value ~0
(that is, all bits set) with the name "Everything" are always displayed at the top of the menu. The names for the values 0
and ~0
can be overriden by defining these values in the enum type.
**注意**:此方法仅支持其基础类型(sbyte、short、int、byte、ushort 或 uint)受 Unity 的序列化系统支持的枚举。如果枚举由无符号类型提供支持,那么“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); } }