#if UNITY_EDITOR
using System.Collections.Generic;
using System.IO;
using TMPro;
using UnityEditor;
using UnityEditor.SceneManagement;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
///
/// Tools → VRBeatSaber → 전체 자동 설정
/// 씬 생성, 프리팹 생성, Build Settings 등록까지 한 번에 처리
///
public static class VRBeatSaberSceneBuilder
{
private static GameObject s_cardPrefab;
[MenuItem("Tools/VRBeatSaber/전체 자동 설정 (한 번만 실행)")]
public static void SetupAll()
{
if (!EditorUtility.DisplayDialog(
"VRBeatSaber 자동 설정",
"Intro / SongSelect / SongCreator 씬과\nSongCard 프리팹, Build Settings를 자동으로 설정합니다.\n\n현재 씬이 저장되지 않으면 경고가 뜹니다.",
"실행", "취소")) return;
if (!EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo()) return;
EnsureFolder("Assets/Scenes");
EnsureFolder("Assets/Prefab");
// 1. SongCard 프리팹
s_cardPrefab = CreateSongCardPrefab();
// 2. SongSelect 씬 생성
BuildSongSelectScene();
// 3. SongCreator 씬 생성
BuildSongCreatorScene();
// 4. Intro 씬에 UI 추가
ModifyIntroScene();
// 5. Game 씬 AudioClip 제거
FixGameScene();
// 6. Build Settings 등록
RegisterBuildSettings();
AssetDatabase.Refresh();
EditorUtility.DisplayDialog(
"완료",
"자동 설정 완료!\n\n" +
"[ 직접 해야 할 것 (2가지) ]\n\n" +
"1. SongCreator 씬 → [CreatorManager]\n" +
" → NasPublisher → Nas Password\n" +
" (DSM 비밀번호 입력)\n\n" +
"2. Quest에 MP3 파일 넣기\n" +
" adb push 파일.mp3\n" +
" /sdcard/Android/data/{패키지명}/files/input/",
"확인");
}
// ══════════════════════════════════════════════════════════
// 1. SongCard 프리팹
// ══════════════════════════════════════════════════════════
private static GameObject CreateSongCardPrefab()
{
var root = new GameObject("SongCard");
root.AddComponent().color = new Color(0.12f, 0.12f, 0.12f);
var btn = root.AddComponent