Объявление
public static Enum EnumPopup(Rect position, Enum selected, GUIStyle style = EditorStyles.popup);public static Enum EnumPopup(Rect position, string label, Enum selected, GUIStyle style = EditorStyles.popup);
public static Enum EnumPopup(Rect position, GUIContent label, Enum selected, GUIStyle style = EditorStyles.popup);
public static Enum EnumPopup(Rect position, GUIContent label, Enum selected, Func
Параметры
position | Прямоугольник на экране использовать для поля. |
label | Необязательная метка перед полем. |
selected | Параметр enum, отображаемый в поле. |
style | Необязательный стиль GUIStyle. |
includeObsolete | Установите значение true, чтобы включить значения Enum с ObsoleteAttribute. Установите значение false, чтобы исключить значения Enum с ObsoleteAttribute. |
checkEnabled | Метод вызывается для каждого отображаемого значения Enum. Указанный метод должен возвращать true, если опция может быть выбрана, и false в противном случае. |
Возвращает
Enum Параметр перечисления, выбранный пользователем.
Описание
Создает всплывающее поле выбора enum.
Принимает текущее выбранное значение перечисления в качестве параметра и возвращает значение перечисления, выбранное пользователем.

using UnityEditor;
using UnityEngine;
// Показывает информацию об GameObject в зависимости от выбранной опции
public enum OPTIONS
{
Position = 0,
Rotation = 1,
Scale = 2,
}
public class EditorGUIEnumPopup : EditorWindow
{
OPTIONS display = OPTIONS.Position;
[MenuItem("Examples/EditorGUI Enum Popup usage")]
static void Init()
{
EditorWindow window = GetWindow(typeof(EditorGUIEnumPopup));
window.position = new Rect(0, 0, 220, 80);
window.Show();
}
void OnGUI()
{
Transform selectedObj = Selection.activeTransform;
display = (OPTIONS)EditorGUI.EnumPopup(
new Rect(3, 3, position.width - 6, 15),
"Show:",
display);
EditorGUI.LabelField(new Rect(0, 20, position.width, 15),
"Name:",
selectedObj ? selectedObj.name : "Select an Object");
if (selectedObj)
{
switch (display)
{
case OPTIONS.Position:
EditorGUI.LabelField(new Rect(0, 40, position.width, 15),
"Position:",
selectedObj.position.ToString());
break;
case OPTIONS.Rotation:
EditorGUI.LabelField(new Rect(0, 40, position.width, 15),
"Rotation:",
selectedObj.rotation.ToString());
break;
case OPTIONS.Scale:
EditorGUI.LabelField(new Rect(0, 40, position.width, 15),
"Scale:",
selectedObj.localScale.ToString());
break;
default:
Debug.LogError("Unrecognized Option");
break;
}
}
if (GUI.Button(new Rect(3, position.height - 25, position.width - 6, 24), "Close"))
this.Close();
}
}