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 ์—ด๋ฆผ
์”ฌ ์ฐพ์•„ ์—ฌ๋А๋ผ ์†๊ฐ€๋ฝ ์•„ํŒŒ์„œ ์ฑ—์ง€ํ”ผํ‹ฐํ•œํ…Œ ๋งŒ๋“ค์–ด ๋‹ฌ๋ผ๊ณ  ํ–ˆ์Œ... ํŽธํ•จ
์ € ๊ฐ™์€ ๊ฐœ์ดˆ๋ณด๋ถ„๋“ค ๊ฐ™์ด ํŽธํ•˜์ž๊ณ  ์˜ฌ๋ ค๋ด…๋‹ˆ๋‹ค.