Created
January 2, 2023 19:48
-
-
Save ricardj/d9294a5b98eda8c7c2abfa850b8c60b8 to your computer and use it in GitHub Desktop.
Tool for efficiently changing scene.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System.IO; | |
using System.Linq; | |
using UnityEditor; | |
using UnityEditor.EditorTools; | |
using UnityEditor.SceneManagement; | |
using UnityEngine; | |
[EditorTool("Change Scene")] | |
public class ChangeSceneToEditorTool : EditorTool | |
{ | |
[SerializeField] | |
Texture2D m_ToolIcon; | |
GUIContent m_IconContent; | |
void OnEnable() | |
{ | |
m_IconContent = new GUIContent() | |
{ | |
image = m_ToolIcon, | |
}; | |
} | |
public override GUIContent toolbarIcon | |
{ | |
get { return m_IconContent; } | |
} | |
public override void OnToolGUI(EditorWindow window) | |
{ | |
Handles.BeginGUI(); | |
EditorBuildSettingsScene[] editorBuildSettingsScenes = EditorBuildSettings.scenes; | |
editorBuildSettingsScenes.ToList().ForEach(editorScene => | |
{ | |
string sceneName = Path.GetFileNameWithoutExtension(editorScene.path); | |
if (GUILayout.Button(sceneName)) | |
{ | |
Debug.Log("Go to scene " + sceneName); | |
EditorSceneManager.OpenScene(editorScene.path); | |
} | |
}); | |
Handles.EndGUI(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment