65 lines
2 KiB
C#
65 lines
2 KiB
C#
#if UNITY_6000_3_OR_NEWER
|
|
using UnityEditor;
|
|
using UnityEditor.SceneManagement;
|
|
using UnityEngine.SceneManagement;
|
|
|
|
namespace Module.NavigationTool.Editor.Toolbar
|
|
{
|
|
[InitializeOnLoad]
|
|
internal static class MainToolbarScenePickerStateChanged
|
|
{
|
|
static MainToolbarScenePickerStateChanged()
|
|
{
|
|
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)
|
|
{
|
|
MainToolbarScenePickerElement.Refresh();
|
|
}
|
|
|
|
private static void OnActiveSceneChanged(Scene current, Scene next)
|
|
{
|
|
MainToolbarScenePickerElement.Refresh();
|
|
}
|
|
|
|
private static void OnSceneLoaded(Scene scene, LoadSceneMode mode)
|
|
{
|
|
MainToolbarScenePickerElement.Refresh();
|
|
}
|
|
|
|
private static void OnSceneUnloaded(Scene arg0)
|
|
{
|
|
MainToolbarScenePickerElement.Refresh();
|
|
}
|
|
|
|
private static void OnActiveSceneChangedInEditMode(Scene from, Scene to)
|
|
{
|
|
MainToolbarScenePickerElement.Refresh();
|
|
}
|
|
|
|
private static void OnNewSceneCreated(Scene scene, NewSceneSetup setup, NewSceneMode mode)
|
|
{
|
|
MainToolbarScenePickerElement.Refresh();
|
|
}
|
|
|
|
private static void OnSceneOpened(Scene scene, OpenSceneMode mode)
|
|
{
|
|
MainToolbarScenePickerElement.Refresh();
|
|
}
|
|
|
|
private static void OnSceneClosed(Scene scene)
|
|
{
|
|
MainToolbarScenePickerElement.Refresh();
|
|
}
|
|
}
|
|
}
|
|
#endif
|