module-navigation-tool/Editor/Toolbar/Tools/ToolScenePickerEditorStateChanged.cs

32 lines
967 B
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;
EditorSceneManager.newSceneCreated += OnNewSceneCreated;
}
private static void OnPlayModeStateChanged(PlayModeStateChange state)
{
ToolScenePicker.SetAsDirty();
}
private static void OnActiveSceneChanged(Scene current, Scene next)
{
ToolScenePicker.SetAsDirty();
}
private static void OnNewSceneCreated(Scene scene, NewSceneSetup setup, NewSceneMode mode)
{
ToolScenePicker.SetAsDirty();
}
}
}