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

EditorGUILayout.EnumFlagsField

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实会阅读用户提出的每项更改建议,并在适用时进行更新。

关闭

提交失败

由于某些原因,您的更改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public static Enum EnumFlagsField(Enum enumValue, params GUILayoutOption[] options);

声明

public static Enum EnumFlagsField(Enum enumValue, GUIStyle style, params GUILayoutOption[] options);

声明

public static Enum EnumFlagsField(string label, Enum enumValue, params GUILayoutOption[] options);

声明

public static Enum EnumFlagsField(string label, Enum enumValue, GUIStyle style, params GUILayoutOption[] options);

声明

public static Enum EnumFlagsField(GUIContent label, Enum enumValue, params GUILayoutOption[] options);

声明

public static Enum EnumFlagsField(GUIContent label, Enum enumValue, GUIStyle style, params GUILayoutOption[] options);

声明

public static Enum EnumFlagsField(GUIContent label, Enum enumValue, bool includeObsolete, params GUILayoutOption[] options);

声明

public static Enum EnumFlagsField(GUIContent label, Enum enumValue, bool includeObsolete, GUIStyle style, params GUILayoutOption[] options);

参数

label 枚举标志字段前面显示的可选标签。
enumValue 枚举标志值。
style 可选的 GUIStyle
options 指定额外布局属性的可选布局选项列表。此处传递的任何值都将覆盖由style定义的设置。
其他资源:GUILayout.WidthGUILayout.HeightGUILayout.MinWidthGUILayout.MaxWidthGUILayout.MinHeightGUILayout.MaxHeightGUILayout.ExpandWidthGUILayout.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); } }