1.8.0: Added target frame rate and PlayerPrefs.Delete to toolbar
- Added: Tooltips on all buttons and labels in toolbar tools - Added: Target frame rate with `[min;max]` slider in toolbar - Added: `PlayerPrefs` delete button added to toolbar - Added: Option to select Single/Additive scene load/unload to scene picker - Added: All `IToolbarSettings` will be grouped with a foldout-toggle in Preferences
This commit is contained in:
parent
10d07b986f
commit
fe82c5c9fa
22 changed files with 669 additions and 48 deletions
|
|
@ -1,3 +1,4 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
|
@ -8,6 +9,8 @@ namespace Module.NavigationTool.Editor.Toolbar
|
|||
{
|
||||
private static Styles STYLES;
|
||||
private static IToolbarSettings[] SETTINGS;
|
||||
|
||||
private const string PREF_FOLDOUT_STATE = "ToolbarFoldout_{0}";
|
||||
|
||||
[SettingsProvider]
|
||||
public static SettingsProvider GetProvider()
|
||||
|
|
@ -46,13 +49,44 @@ namespace Module.NavigationTool.Editor.Toolbar
|
|||
for (var i = 0; i < SETTINGS.Length; i++)
|
||||
{
|
||||
IToolbarSettings settings = SETTINGS[i];
|
||||
|
||||
EditorGUILayout.LabelField(settings.Title, EditorStyles.boldLabel);
|
||||
settings.Draw();
|
||||
EditorGUILayout.Space();
|
||||
|
||||
try
|
||||
{
|
||||
bool foldoutState = GetFoldoutState(settings);
|
||||
bool newFoldoutState = EditorGUILayout.BeginFoldoutHeaderGroup(foldoutState, settings.Title, EditorStyles.foldoutHeader);
|
||||
|
||||
if (newFoldoutState)
|
||||
{
|
||||
EditorGUI.indentLevel++;
|
||||
settings.Draw();
|
||||
EditorGUI.indentLevel--;
|
||||
}
|
||||
|
||||
EditorGUILayout.EndFoldoutHeaderGroup();
|
||||
EditorGUILayout.Space();
|
||||
|
||||
if (newFoldoutState != foldoutState)
|
||||
SetFoldoutState(settings, newFoldoutState);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
EditorGUILayout.LabelField(e.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
EditorGUILayout.EndVertical();
|
||||
}
|
||||
|
||||
private static bool GetFoldoutState(IToolbarSettings settings)
|
||||
{
|
||||
string key = string.Format(PREF_FOLDOUT_STATE, settings.GetType().FullName);
|
||||
return EditorPrefs.GetBool(key, true);
|
||||
}
|
||||
|
||||
private static void SetFoldoutState(IToolbarSettings settings, bool foldout)
|
||||
{
|
||||
string key = string.Format(PREF_FOLDOUT_STATE, settings.GetType().FullName);
|
||||
EditorPrefs.SetBool(key, foldout);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue