void EditorSkinsDropdown(Rect pos) { string[] guids = AssetDatabase.FindAssets("t:ScriptableObject"); List <EditorSkin> skins = new List <EditorSkin>(); for (int g = 0; g < guids.Length; g++) { ScriptableObject obj = AssetDatabase.LoadAssetAtPath <ScriptableObject>(AssetDatabase.GUIDToAssetPath(guids[g])); if (obj != null && obj.GetType().Equals(typeof(EditorSkin))) { skins.Add((EditorSkin)obj); } } skins.Sort((x, y) => x.orderValue.CompareTo(y.orderValue)); GenericMenu menu = new GenericMenu(); for (int t = 0; t < skins.Count; t++) { EditorSkin skin = skins[t]; menu.AddItem(new GUIContent(skin.title), EditorSettings.INSTANCE.editorSkin == skin, delegate() { EditorSettings.INSTANCE.editorSkin = skin; EditorUtility.SetDirty(EditorSettings.INSTANCE); AbilityDesignerWindow.OrderSkinChange(); Focus(); }); } menu.DropDown(pos); }
void EditorArea(Rect rect) { EditorSettings settings = EditorSettings.INSTANCE; EditorGUI.BeginChangeCheck(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel(new GUIContent("Editor Skin")); Rect buttonRect = GUILayoutUtility.GetRect(new GUIContent(""), EditorStyles.popup); if (GUI.Button(buttonRect, new GUIContent(EditorSettings.INSTANCE.editorSkin.title), EditorStyles.popup)) { EditorSkinsDropdown(buttonRect); } EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.BeginVertical(EditorStyles.helpBox); EditorGUILayout.LabelField(new GUIContent("Shortcuts")); EditorGUILayout.Space(); ShortcutField(new GUIContent("General Tab"), settings.generalTabShortcut); ShortcutField(new GUIContent("Structure Tab"), settings.structureTabShortcut); ShortcutField(new GUIContent("Variables Tab"), settings.variablesTabShortcut); ShortcutField(new GUIContent("Inspector Tab"), settings.inspectorTabShortcut); EditorGUILayout.Space(); ShortcutField(new GUIContent("Move Selection Left"), settings.moveSelectionLeftShortcut); ShortcutField(new GUIContent("Move Selection Right"), settings.moveSelectionRightShortcut); ShortcutField(new GUIContent("Move Selection Up"), settings.moveSelectionUpShortcut); ShortcutField(new GUIContent("Move Selection Down"), settings.moveSelectionDownShortcut); EditorGUILayout.Space(); ShortcutField(new GUIContent("Move Left"), settings.moveLeftShortcut); ShortcutField(new GUIContent("Move Right"), settings.moveRightShortcut); ShortcutField(new GUIContent("Move Up"), settings.moveUpShortcut); ShortcutField(new GUIContent("Move Down"), settings.moveDownShortcut); EditorGUILayout.Space(); ShortcutField(new GUIContent("Delete Selected"), settings.deleteSelectedShortcut); ShortcutField(new GUIContent("Delete Hovered"), settings.deleteHoveredShortcut); EditorGUILayout.EndVertical(); EditorGUILayout.Space(); if (EditorGUI.EndChangeCheck()) { CheckForShortcutErrors(); EditorUtility.SetDirty(settings); AbilityDesignerWindow.OrderSkinChange(); Focus(); } }