71 lines
2.9 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|