Объявление
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 | Необязательный список параметров макета, определяющих дополнительные свойства макета. Любые переданные здесь значения переопределяют настройки, заданные стилем .Смотрите так же: 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. (Обратите внимание, что это возвращаемое значение само по себе не является Enum).
Описание
Отображает меню с параметрами для каждого значения перечислимого типа при нажатии.
Параметр для значения 0
с именем "Ничего" и вариант для значения ~0
(то есть все биты установлены) с названием «Все» всегда отображаются в верхней части меню. Имена значений 0
и ~0
можно переопределить, определив эти значения в типе перечисления.
Примечание. Этот метод поддерживает только перечисления, базовые типы которых поддерживаются системой сериализации Unity (sbyte, short, int, byte, ushort или uint). Для перечислений, поддерживаемых беззнаковым типом, параметру «Все» должно быть присвоено значение, соответствующее всем установленным битам (т. е. ~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().Show();
}
void OnGUI()
{
m_Flags = (ExampleFlagsEnum)EditorGUILayout.EnumFlagsField(m_Flags);
}
}