Navigation tools upgraded to use the new MainToolbarElement API

This commit is contained in:
Anders Ejlersen 2025-12-06 15:17:30 +01:00
parent 708b99f763
commit 3e1602162c
52 changed files with 837 additions and 66 deletions

View file

@ -0,0 +1,64 @@
#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