static void Init() { GameSettingsEditor window = (GameSettingsEditor)EditorWindow.GetWindow(typeof(GameSettingsEditor)); window.titleContent = new GUIContent("RTS Game Settings"); window.maxSize = new Vector2(768f, 600f); window.minSize = window.maxSize; window.Show(); Load(); }
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { var storage = GameSettingsEditor.GetStorage(); if (!storage) { EditorGUI.PropertyField(position, property, label, true); return; } var soundLibrary = storage.soundLibrary; if (!soundLibrary) { EditorGUI.PropertyField(position, property, label, true); return; } var soundPathes = soundLibrary.GetSoundsPathes(soundLibrary.soundsCategories); var currentIndex = GetIndexOfCurrentSound(property.objectReferenceValue as AudioClip, soundPathes); if (currentIndex < 0) { currentIndex = 0; } // here we drawing an popup with list of all sounds, divided by categories. We need to little reduce width to add second field near this popup var popupPosition = position; popupPosition.width -= 96; currentIndex = EditorGUI.Popup(popupPosition, property.displayName, currentIndex, soundPathes.ToArray()); property.objectReferenceValue = GetSoundByIndex(currentIndex, soundPathes, soundLibrary); // we also showing default object field property in right side of our popup var propertyPosition = position; propertyPosition.x = popupPosition.width + 15; propertyPosition.width = 96; EditorGUI.PropertyField(propertyPosition, property, new GUIContent(""), true); }