Я создаю редактор Unity. У меня есть набор флагов в перечислении:Unity EditorGUILayout.EnumMaskField проблемы, когда первое значение перечисления равно 0
[Flags]
public enum Flags : int
{
None = 0x00,
First = 0x01,
Second = 0x02,
Third = 0x04,
Fourth = 0x08
}
, который я хочу представить в выпадающем списке, в котором пользователь может выбрать более чем один из этих флагов. Я нашел EditorGUILayout.EnumMaskField, и я использую его.
По умолчанию для меня представлены опции «Ничего» и «Все». Я не только не хочу их: они, кажется, создают проблемы для меня, из-за опции «Nothing», которую он предоставляет, 0, а мой собственный параметр «Нет» также равен 0. Удаление флага «Нет» не является вариантом из-за другие причины в приложении, не устанавливая параметр «Нет» для чего-то еще, чем 0.
Я инициализирую выбранные флаги при создании окна из заданного объекта Flags. В объекте Flags, который я ввожу в редактор, флаги «Первый» и «Второй» включены, но когда вызывается EnumMaskField, вместо этого выбираются «None» и «First». Как будто «Нет» будет «первым», а «первым» будет «вторым».
private static Flags myFlags;
public static MyEditorWindow ShowWindow(Flags flags)
{
myFlags = flags;
...
}
public void OnGUI()
{
myFlags = (Flags)EditorGUILayout.EnumMaskField("Flags:", myFlags);
}
Есть ли способ отключить опции «Ничего» и «Все»?