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

EditorGUI.EnumPopup

Declaration

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<Enum,bool> checkEnabled = null, bool includeObsolete = false, GUIStyle style = null);

Параметры

Параметр Описание
должность Прямоугольник на экране, который будет использоваться для поля.
метка Факультативный знак перед полем.
выбрано Вариант перечисления, отображаемый полем.
стиль Факультативно GUIStyle.
includeObsolete Установите в true, чтобы включить значения Enum с ObsoleteAttribute. Установите в false, чтобы исключить значения Enum с ObsoleteAttribute.
checkEnabled Метод, вызванный для каждого отображаемого значения Enum. Указанный метод должен возвращать true, если опция может быть выбрана, false в противном случае.

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

Энум Вариант перечисления, выбранный пользователем.

Описание

Создаёт всплывающее поле выбора перечисления.

Принимает в качестве параметра выбранное в данный момент значение перечисления и возвращает значение, выбранное пользователем.
Всплывающее окно Enum в редакторе.

using UnityEditor;
using UnityEngine;

// Shows info of a GameObject depending on the selected option

public enum OPTIONS { Position = 0, Rotation = 1, Scale = 2, }

public class EditorGUIEnumPopup : EditorWindow { OPTIONS display = OPTIONS.Position;

[MenuItem("Examples/Editor GUI 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(); } }