Skip to content

Commit 5257559

Browse files
authored
Merge pull request #7 from marijnz/uielements_changes
Alternative way (UIElements) improvements
2 parents b65f733 + a44ae9b commit 5257559

File tree

12 files changed

+330
-324
lines changed

12 files changed

+330
-324
lines changed

Assets/ToolbarExtender/Example/Scripts/Editor/ExtendedToolbarWindowExample.cs

Lines changed: 0 additions & 50 deletions
This file was deleted.

Assets/ToolbarExtender/Example/Scripts/Editor/SceneHelper.cs

Lines changed: 0 additions & 40 deletions
This file was deleted.

Assets/ToolbarExtender/Example/Scripts/Editor/SceneHelper.cs.meta

Lines changed: 0 additions & 3 deletions
This file was deleted.
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
using UnityEditor;
2+
using UnityEditor.SceneManagement;
3+
using UnityEngine;
4+
5+
namespace UnityToolbarExtender.Examples
6+
{
7+
static class ToolbarStyles
8+
{
9+
public static readonly GUIStyle commandButtonStyle;
10+
11+
static ToolbarStyles()
12+
{
13+
commandButtonStyle = new GUIStyle("Command")
14+
{
15+
fontSize = 16,
16+
alignment = TextAnchor.MiddleCenter,
17+
imagePosition = ImagePosition.ImageAbove,
18+
fontStyle = FontStyle.Bold
19+
};
20+
}
21+
}
22+
23+
[InitializeOnLoad]
24+
public class SceneSwitchLeftButton
25+
{
26+
static SceneSwitchLeftButton()
27+
{
28+
ToolbarExtender.LeftToolbarGUI.Add(OnToolbarGUI);
29+
}
30+
31+
static void OnToolbarGUI()
32+
{
33+
GUILayout.FlexibleSpace();
34+
35+
if(GUILayout.Button(new GUIContent("1", "Start Scene 1"), ToolbarStyles.commandButtonStyle))
36+
{
37+
SceneHelper.StartScene("Assets/ToolbarExtender/Example/Scenes/Scene1.unity");
38+
}
39+
40+
if(GUILayout.Button(new GUIContent("2", "Start Scene 2"), ToolbarStyles.commandButtonStyle))
41+
{
42+
SceneHelper.StartScene("Assets/ToolbarExtender/Example/Scenes/Scene2.unity");
43+
}
44+
}
45+
}
46+
47+
static class SceneHelper
48+
{
49+
static string sceneToOpen;
50+
51+
public static void StartScene(string scene)
52+
{
53+
if(EditorApplication.isPlaying)
54+
{
55+
EditorApplication.isPlaying = false;
56+
}
57+
58+
sceneToOpen = scene;
59+
EditorApplication.update += OnUpdate;
60+
}
61+
62+
static void OnUpdate()
63+
{
64+
if (sceneToOpen == null ||
65+
EditorApplication.isPlaying || EditorApplication.isPaused ||
66+
EditorApplication.isCompiling || EditorApplication.isPlayingOrWillChangePlaymode)
67+
{
68+
return;
69+
}
70+
71+
EditorApplication.update -= OnUpdate;
72+
73+
if(EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo())
74+
{
75+
EditorSceneManager.OpenScene(sceneToOpen);
76+
EditorApplication.isPlaying = true;
77+
}
78+
sceneToOpen = null;
79+
}
80+
}
81+
}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
using UnityEditor;
2+
using UnityEngine;
3+
4+
namespace UnityToolbarExtender.Examples
5+
{
6+
[InitializeOnLoad]
7+
public static class SceneViewFocuser
8+
{
9+
static bool m_enabled;
10+
11+
static bool Enabled
12+
{
13+
get { return m_enabled; }
14+
set
15+
{
16+
m_enabled = value;
17+
EditorPrefs.SetBool("SceneViewFocuser", value);
18+
}
19+
}
20+
21+
static SceneViewFocuser()
22+
{
23+
m_enabled = EditorPrefs.GetBool("SceneViewFocuser", false);
24+
EditorApplication.playModeStateChanged += OnPlayModeChanged;
25+
EditorApplication.pauseStateChanged += OnPauseChanged;
26+
27+
ToolbarExtender.RightToolbarGUI.Add(OnToolbarGUI);
28+
}
29+
30+
static void OnPauseChanged(PauseState obj)
31+
{
32+
if (Enabled && obj == PauseState.Unpaused)
33+
{
34+
// Not sure why, but this must be delayed
35+
EditorApplication.delayCall += EditorWindow.FocusWindowIfItsOpen<SceneView>;
36+
}
37+
}
38+
39+
static void OnPlayModeChanged(PlayModeStateChange obj)
40+
{
41+
if (Enabled && obj == PlayModeStateChange.EnteredPlayMode)
42+
{
43+
EditorWindow.FocusWindowIfItsOpen<SceneView>();
44+
}
45+
}
46+
47+
static void OnToolbarGUI()
48+
{
49+
var tex = EditorGUIUtility.IconContent(@"UnityEditor.SceneView").image;
50+
51+
GUI.changed = false;
52+
53+
GUILayout.Toggle(m_enabled, new GUIContent(null, tex, "Focus SceneView when entering play mode"), "Command");
54+
if (GUI.changed)
55+
{
56+
Enabled = !Enabled;
57+
}
58+
}
59+
}
60+
}

Assets/ToolbarExtender/Scripts/Editor/ExtendedToolbarWindow.cs.meta renamed to Assets/ToolbarExtender/Example/Scripts/Editor/SceneViewFocuser.cs.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)