public static DisplayPopupMenu ( |
||
position | ||
menuItemPath | string | |
command | ||
return | void |
public static int ShowTerrainLayersSelectionHelper(Terrain terrain, int activeTerrainLayer) { GUILayout.Label(s_Styles.terrainLayers, EditorStyles.boldLabel); GUI.changed = false; int selectedTerrainLayer = activeTerrainLayer; if (terrain.terrainData.terrainLayers.Length > 0) { TerrainLayer[] layers = terrain.terrainData.terrainLayers; var layerGUIContents = new GUIContent[layers.Length]; for (int i = 0; i < layers.Length; ++i) { layerGUIContents[i] = new GUIContent { image = (layers[i] == null || layers[i].diffuseTexture == null) ? EditorGUIUtility.whiteTexture : AssetPreview.GetAssetPreview(layers[i].diffuseTexture) ?? layers[i].diffuseTexture, text = layers[i] == null ? "Missing" : layers[i].name, tooltip = layers[i] == null ? "Missing" : layers[i].name }; } selectedTerrainLayer = TerrainInspector.AspectSelectionGridImageAndText(activeTerrainLayer, layerGUIContents, 64, s_Styles.errNoLayersFound, out _); } else { selectedTerrainLayer = -1; } GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); // menu button Rect r = GUILayoutUtility.GetRect(s_Styles.btnEditTerrainLayers, new GUIStyle("Button")); if (GUI.Button(r, s_Styles.btnEditTerrainLayers, new GUIStyle("Button"))) { MenuCommand context = new MenuCommand(terrain, selectedTerrainLayer); EditorUtility.DisplayPopupMenu(new Rect(r.x, r.y, 0, 0), "CONTEXT /TerrainLayers", context); } GUILayout.EndHorizontal(); return(selectedTerrainLayer); }