module-navigation-tool/Editor/Toolbar/Tools/ToolScenePickerEditorStateChanged.cs
Anders Ejlersen fe82c5c9fa 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
2022-12-07 22:10:09 +01:00

62 lines
1.9 KiB
C#

using UnityEditor;
using UnityEditor.SceneManagement;
using UnityEngine.SceneManagement;
namespace Module.NavigationTool.Editor.Toolbar
{
[InitializeOnLoad]
internal static class ToolScenePickerEditorStateChanged
{
static ToolScenePickerEditorStateChanged()
{
EditorApplication.playModeStateChanged += OnPlayModeStateChanged;
SceneManager.activeSceneChanged += OnActiveSceneChanged;
SceneManager.sceneLoaded += OnSceneLoaded;
SceneManager.sceneUnloaded += OnSceneUnloaded;
EditorSceneManager.newSceneCreated += OnNewSceneCreated;
EditorSceneManager.activeSceneChangedInEditMode += OnActiveSceneChangedInEditMode;
EditorSceneManager.sceneOpened += OnSceneOpened;
EditorSceneManager.sceneClosed += OnSceneClosed;
}
private static void OnPlayModeStateChanged(PlayModeStateChange state)
{
ToolScenePicker.SetAsDirty();
}
private static void OnActiveSceneChanged(Scene current, Scene next)
{
ToolScenePicker.SetAsDirty();
}
private static void OnSceneLoaded(Scene scene, LoadSceneMode mode)
{
ToolScenePicker.SetAsDirty();
}
private static void OnSceneUnloaded(Scene arg0)
{
ToolScenePicker.SetAsDirty();
}
private static void OnActiveSceneChangedInEditMode(Scene from, Scene to)
{
ToolScenePicker.SetAsDirty();
}
private static void OnNewSceneCreated(Scene scene, NewSceneSetup setup, NewSceneMode mode)
{
ToolScenePicker.SetAsDirty();
}
private static void OnSceneOpened(Scene scene, OpenSceneMode mode)
{
ToolScenePicker.SetAsDirty();
}
private static void OnSceneClosed(Scene scene)
{
ToolScenePicker.SetAsDirty();
}
}
}