Version: 5.4
public static int Popup (Rect position, int selectedIndex, string[] displayedOptions, GUIStyle style= EditorStyles.popup);
public static int Popup (Rect position, int selectedIndex, GUIContent[] displayedOptions, GUIStyle style= EditorStyles.popup);
public static int Popup (Rect position, string label, int selectedIndex, string[] displayedOptions, GUIStyle style= EditorStyles.popup);
public static int Popup (Rect position, GUIContent label, int selectedIndex, GUIContent[] displayedOptions, GUIStyle style= EditorStyles.popup);

Parameters

position @param position Прямоугольник на экране, используемый для поля.
label @param label Необязательный текст перед полем.
selectedIndex @param selected Значение enum показываемое в поле как выбранное.
displayedOptions An array with the options shown in the popup.
style @param style Необязательный стиль GUIStyle.

Returns

int @return Значение перечисления enum которое было выбрано пользователем.

Description

Make a generic popup selection field.

Получает текущее значение enum в качестве параметра, и возвращает значение enum, выбранное пользователем.


Popup in and Editor Window.

	// Adds a component to the selected GameObjects
	
	class EditorGUIPopup extends EditorWindow {
		var options : String[] = ["Rigidbody", "Box Collider", "Sphere Collider"];
		var index : int = 0;
		
		@MenuItem("Examples/Editor GUI Popup usage")
		static function Init() {
			var window = GetWindow(EditorGUIPopup);
			window.position = Rect(0,0,180,80);
			window.Show();
		}
		
		
		function OnGUI() {
			index = EditorGUI.Popup(
				Rect(0,0,position.width, 20),
				"Component:",
				index, 
				options);
				
			if(GUI.Button(Rect(0,25,position.width, position.height - 26),"Add Component"))
				AddComponentToObjects();
		}
		
		
		function AddComponentToObjects() {
			if(!Selection.activeGameObject) {
				Debug.LogError("Please select at least one GameObject first");
				return;
			}
			
			for(var go : GameObject in Selection.gameObjects)
				switch (index) {
					case 0:
						go.AddComponent.<Rigidbody>();
						break;
					
					case 1:
						go.AddComponent.<BoxCollider>();
					
					case 2:
						go.AddComponent.<SphereCollider>();
				}
		}
	}

Note: The displayedOptions lists an array of options. When these elements contain "/" (slash characters) the elements are use for sub-menus. The text to the left of the slashes determines the structure.