版本: Unity 6 (6000.0)
语言英语
  • C#

EditorGUI.EnumPopup

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们会阅读用户提出的每项修改建议,并在适用情况下进行更新。

关闭

提交失败

由于某种原因,您的修改建议无法提交。请 <a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

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);

参数

position 用于该字段的屏幕上的矩形。
label 该字段前面的可选标签。
selected 该字段显示的枚举选项。
style 可选的 GUIStyle
includeObsolete 设置为 true 以包含具有 ObsoleteAttribute 的枚举值。设置为 false 以排除具有 ObsoleteAttribute 的枚举值。
checkEnabled 针对每个显示的枚举值调用的方法。指定的方法应在选项可选择时返回 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(); } }