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(); } } }