Unity 6.3
0 онлайн 8 гостей 3 в системе
Вход

EditorGUI.EnumFlagsField

Declaration

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

Параметры

Параметр Описание
должность Прямоугольник на экране, используемый для поля флагов перечисления.
метка Необязательная метка, отображаемая перед полем флагов перечисления.
enumValue Значение флагов перечисления (поддерживаются только значения перечислений, у которых базовым типом является int).
стиль Факультативно GUIStyle.
includeObsolete Установите в true, чтобы включить значения Enum с ObsoleteAttribute. Установите в false, чтобы исключить значения Enum с ObsoleteAttribute.

Возвращаемое значение

Энум Значение флагов перечисления, изменённое пользователем. Это битовая маска выбора, в которой каждый бит соответствует индексу значения Enum. (Учтите, что само возвращаемое значение не является Enum.)

Описание

При щелчке показывает меню с пунктом для каждого значения перечислимого типа. Пункт для значения 0 с именем "Nothing" и опцией для значения ~0 (то есть, все биты настроены) с именем "Все" всегда отображаются в верхней части меню. Имена для значений 0 и ~0 можно переопределить, задав эти значения в перечислимом типе.

Примечание: Этот метод поддерживает только энумы, основные типы которых поддерживаются системой сериализации Unity (sbyte, short, int, byte, ushort или uint). Для энумов, поддерживаемых беззнаковым типом, параметр "Все" должен иметь значение, соответствующее всем битам набора (i.e. ~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); } }