Navigation tools upgraded to use the new MainToolbarElement API
This commit is contained in:
parent
708b99f763
commit
3e1602162c
52 changed files with 837 additions and 66 deletions
|
|
@ -0,0 +1,22 @@
|
|||
#if UNITY_6000_3_OR_NEWER
|
||||
using System.Linq;
|
||||
using UnityEditor;
|
||||
|
||||
namespace Module.NavigationTool.Editor.Toolbar
|
||||
{
|
||||
internal sealed class MainToolbarScenePickerPostProcess : AssetPostprocessor
|
||||
{
|
||||
private static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths)
|
||||
{
|
||||
if (HasChange(deletedAssets) || HasChange(movedAssets) || HasChange(importedAssets))
|
||||
MainToolbarScenePickerElement.Refresh();
|
||||
}
|
||||
|
||||
private static bool HasChange(string[] assets)
|
||||
{
|
||||
return assets.Any(s => s.EndsWith(".unity")) ||
|
||||
assets.Any(s => s.EndsWith("EditorBuildSettings.asset"));
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 1a8274c0b09c4ccf99d08c1e6db45331
|
||||
timeCreated: 1765023528
|
||||
|
|
@ -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
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 0c9bd16d885949239ac6b9f7ce1825ec
|
||||
timeCreated: 1765023528
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
#if UNITY_6000_3_OR_NEWER
|
||||
using UnityEditor;
|
||||
using UnityEditor.SceneManagement;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
namespace Module.NavigationTool.Editor.Toolbar
|
||||
{
|
||||
[InitializeOnLoad]
|
||||
internal static class MainToolbarUIStateChanged
|
||||
{
|
||||
static MainToolbarUIStateChanged()
|
||||
{
|
||||
EditorSceneManager.sceneSaved += OnSceneSaved;
|
||||
EditorSceneManager.sceneOpened += OnSceneOpened;
|
||||
EditorSceneManager.sceneClosed += OnSceneClosed;
|
||||
|
||||
PrefabStage.prefabStageOpened += OnPrefabStageOpened;
|
||||
PrefabStage.prefabStageClosing += OnPrefabStageClosing;
|
||||
}
|
||||
|
||||
private static void OnSceneSaved(Scene scene)
|
||||
{
|
||||
MainToolbarUIElement.Refresh();
|
||||
}
|
||||
|
||||
private static void OnSceneOpened(Scene scene, OpenSceneMode mode)
|
||||
{
|
||||
MainToolbarUIElement.Refresh();
|
||||
}
|
||||
|
||||
private static void OnSceneClosed(Scene scene)
|
||||
{
|
||||
MainToolbarUIElement.Refresh();
|
||||
}
|
||||
|
||||
private static void OnPrefabStageOpened(PrefabStage stage)
|
||||
{
|
||||
MainToolbarUIElement.Refresh();
|
||||
}
|
||||
|
||||
private static void OnPrefabStageClosing(PrefabStage stage)
|
||||
{
|
||||
MainToolbarUIElement.Refresh();
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 21f843e3d88741ef985041ddb1fa986d
|
||||
timeCreated: 1765024267
|
||||
Loading…
Add table
Add a link
Reference in a new issue