using UnityEngine;
using UnityEditor;
using UnityEditor.SceneManagement;
public class SceneShortcutWindow : EditorWindow
{
ย ย [MenuItem("Tools/Scene Shortcuts")]
ย ย public static void ShowWindow()
ย ย {
ย ย ย ย GetWindow<SceneShortcutWindow>("Scene Shortcuts");
ย ย }
ย ย private Vector2 scrollPos;
ย ย private void OnGUI()
ย ย {
ย ย ย ย GUILayout.Label("์ฌ ๋ฐ๋ก๊ฐ๊ธฐ", EditorStyles.boldLabel);
ย ย ย ย if (EditorBuildSettings.scenes.Length == 0)
ย ย ย ย {
ย ย ย ย ย ย EditorGUILayout.HelpBox("๋น๋ ์ธํ
์ ๋ฑ๋ก๋ ์ฌ์ด ์์ต๋๋ค.", MessageType.Warning);
ย ย ย ย ย ย return;
ย ย ย ย }
ย ย ย ย // ์คํฌ๋กค ๋ทฐ ์์
ย ย ย ย scrollPos = EditorGUILayout.BeginScrollView(scrollPos);
ย ย ย ย // ๋น๋ ์ธํ
์ ๋ฑ๋ก๋ ์ฌ ์๋งํผ ๋ฒํผ ์๋ ์์ฑ
ย ย ย ย for (int i = 0; i < EditorBuildSettings.scenes.Length; i++)
ย ย ย ย {
ย ย ย ย ย ย string sceneName = System.IO.Path.GetFileNameWithoutExtension(EditorBuildSettings.scenes[i].path);
ย ย ย ย ย ย if (GUILayout.Button($"[{i}] {sceneName} ์ด๊ธฐ"))
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย OpenSceneByIndex(i);
ย ย ย ย ย ย }
ย ย ย ย }
ย ย ย ย EditorGUILayout.EndScrollView();
ย ย }
ย ย private void OpenSceneByIndex(int index)
ย ย {
ย ย ย ย if (index < 0 || index >= EditorBuildSettings.scenes.Length)
ย ย ย ย {
ย ย ย ย ย ย Debug.LogError($"Scene index {index}๊ฐ ๋น๋ ์ธํ
๋ฒ์๋ฅผ ๋ฒ์ด๋ฌ์ต๋๋ค.");
ย ย ย ย ย ย return;
ย ย ย ย }
ย ย ย ย if (EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo())
ย ย ย ย {
ย ย ย ย ย ย string path = EditorBuildSettings.scenes[index].path;
ย ย ย ย ย ย EditorSceneManager.OpenScene(path);
ย ย ย ย ย ย Debug.Log($"์ฌ ์ด๊ธฐ: {path}");
ย ย ย ย }
ย ย }
}
Editor ํด๋์ ์คํฌ๋ฆฝํธ ๋ฑ๋กํ๊ณ ๋ฉ๋ด๋ฐ - Tools - Scene Shortcuts ์คํํ๋ฉด ๋ฉ๋ฏธ๋ค.๋น๋ ํ๋กํ์ ๋ฑ๋ก๋ ์ฌ์ผ๋ก ๋ฐ๋ก๊ฐ๊ธฐ ui ์ด๋ฆผ
์ฌ ์ฐพ์ ์ฌ๋๋ผ ์๊ฐ๋ฝ ์ํ์ ์ฑ์งํผํฐํํ
๋ง๋ค์ด ๋ฌ๋ผ๊ณ ํ์... ํธํจ
์ ๊ฐ์ ๊ฐ์ด๋ณด๋ถ๋ค ๊ฐ์ด ํธํ์๊ณ ์ฌ๋ ค๋ด
๋๋ค.
๋๊ธ 0