[+] EditorToolbar

[+] EditorToolbar
This commit is contained in:
ALEXTANG
2023-05-11 23:52:42 +08:00
parent 35f7c9309c
commit a827e501f2
15 changed files with 520 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 252cc3ce82f9548b99943bfdadc9d4c0
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,58 @@
using UnityEditor;
using UnityEngine;
namespace UnityToolbarExtender.Examples
{
[InitializeOnLoad]
public static class SceneViewFocuser
{
static bool m_enabled;
static bool Enabled
{
get { return m_enabled; }
set
{
m_enabled = value;
EditorPrefs.SetBool("SceneViewFocuser", value);
}
}
static SceneViewFocuser()
{
m_enabled = EditorPrefs.GetBool("SceneViewFocuser", false);
EditorApplication.playModeStateChanged += OnPlayModeChanged;
EditorApplication.pauseStateChanged += OnPauseChanged;
ToolbarExtender.RightToolbarGUI.Add(OnToolbarGUI);
}
static void OnPauseChanged(PauseState obj)
{
if (Enabled && obj == PauseState.Unpaused)
{
// Not sure why, but this must be delayed
EditorApplication.delayCall += EditorWindow.FocusWindowIfItsOpen<SceneView>;
}
}
static void OnPlayModeChanged(PlayModeStateChange obj)
{
if (Enabled && obj == PlayModeStateChange.EnteredPlayMode)
{
EditorWindow.FocusWindowIfItsOpen<SceneView>();
}
}
static void OnToolbarGUI()
{
var tex = EditorGUIUtility.IconContent(@"UnityEditor.SceneView").image;
GUI.changed = false;
GUILayout.Toggle(m_enabled, new GUIContent(null, tex, "Focus SceneView when entering play mode"), "Command");
if (GUI.changed)
{
Enabled = !Enabled;
}
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: c8ddf5f9fafe5734dbae1d30d51bb2a6
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: