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

EditorGUI.EnumFlagsField

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

声明

public static Enum EnumFlagsField(Rect position, Enum enumValue);

声明

public static Enum EnumFlagsField(Rect position, Enum enumValue, GUIStyle style);

声明

public static Enum EnumFlagsField(Rect position, string label, Enum enumValue);

声明

public static Enum EnumFlagsField(Rect position, string label, Enum enumValue, GUIStyle style);

声明

public static Enum EnumFlagsField(Rect position, GUIContent label, Enum enumValue);

声明

public static Enum EnumFlagsField(Rect position, GUIContent label, Enum enumValue, GUIStyle style);

声明

public static Enum EnumFlagsField(Rect position, GUIContent label, Enum enumValue, bool includeObsolete = false, GUIStyle style = null);

参数

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); } }