module-navigation-tool/Editor/Toolbar/Settings/ToolbarSettingsProvider.cs

71 lines
2.9 KiB
C#

using UnityEditor;
using UnityEngine;
namespace Module.NavigationTool.Editor.Toolbar
{
internal static class ToolbarSettingsProvider
{
private static Styles STYLES;
[SettingsProvider]
public static SettingsProvider GetProvider()
{
return new SettingsProvider("Module/Toolbar", SettingsScope.User)
{
label = "Toolbar",
keywords = new[] { "Scene", "UI", "Toolbar" },
guiHandler = OnGui
};
}
private static void OnGui(string searchContext)
{
if (STYLES == null)
STYLES = new Styles();
STYLES.Initialize((GUI.skin));
EditorGUILayout.BeginVertical(STYLES.settingsGroup);
{
EditorGUILayout.LabelField("UI", EditorStyles.boldLabel);
ToolbarSettings.IsUiEnabled = EditorGUILayout.Toggle("Enable Canvas picker", ToolbarSettings.IsUiEnabled);
ToolbarSettings.IsUiLayerEnabled = EditorGUILayout.Toggle("Enable Layer toggle", ToolbarSettings.IsUiLayerEnabled);
EditorGUILayout.Space();
EditorGUILayout.LabelField("Scene", EditorStyles.boldLabel);
ToolbarSettings.IsSceneEnabled = EditorGUILayout.Toggle("Enable Scene picker", ToolbarSettings.IsSceneEnabled);
EditorGUILayout.Space();
EditorGUILayout.LabelField("Time", EditorStyles.boldLabel);
ToolbarSettings.IsTimeScaleEnabled = EditorGUILayout.Toggle("Enable Time Scale slider", ToolbarSettings.IsTimeScaleEnabled);
GUI.enabled = ToolbarSettings.IsTimeScaleEnabled;
float timeScaleMinValue = EditorGUILayout.FloatField("Min Value", ToolbarSettings.TimeScaleMinValue);
float timeScaleMaxValue = EditorGUILayout.FloatField("Max Value", ToolbarSettings.TimeScaleMaxValue);
if (!Mathf.Approximately(timeScaleMinValue, ToolbarSettings.TimeScaleMinValue))
{
if (timeScaleMinValue < 0.0f)
timeScaleMinValue = 0.0f;
if (timeScaleMinValue > timeScaleMaxValue)
timeScaleMaxValue = timeScaleMinValue;
}
else if (!Mathf.Approximately(timeScaleMaxValue, ToolbarSettings.TimeScaleMaxValue))
{
if (timeScaleMaxValue < 0.0f)
timeScaleMaxValue = 0.0f;
if (timeScaleMaxValue < timeScaleMinValue)
timeScaleMinValue = timeScaleMaxValue;
}
ToolbarSettings.TimeScaleMinValue = timeScaleMinValue;
ToolbarSettings.TimeScaleMaxValue = timeScaleMaxValue;
GUI.enabled = true;
}
EditorGUILayout.EndVertical();
}
}
}