EditorGUILayout.EnumFlagsField
Declaration
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);Параметры
| Параметр | Описание |
|---|---|
| метка | Необязательная метка, отображаемая перед полем флагов перечисления. |
| enumValue | Значение флагов Enum. |
| стиль | Факультативно GUIStyle. |
| варианты | Необязательный список параметров компоновки, задающих дополнительные свойства раскладки. Любые переданные здесь значения переопределяют настройки, заданные style.Дополнительные ресурсы: GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight. |
| 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)EditorGUILayout.EnumFlagsField(m_Flags); } }