#if UNITY_EDITOR using System.Collections.Generic; using UnityEditor.SceneManagement; using UnityEngine; using UnityEngine.SceneManagement; namespace TON { /// Main을 타고 실행한 것처러므 씬이 동작되도록 도와주는 도우미 클래스 public class BootStrapper { private const string BootStrapperMenuPath = "Gameton/BootStrapper/Activate Ingame System"; private static bool IsActivateBootStrapper { get => UnityEditor.EditorPrefs.GetBool(BootStrapperMenuPath, false); set { UnityEditor.EditorPrefs.SetBool(BootStrapperMenuPath, value); UnityEditor.Menu.SetChecked(BootStrapperMenuPath, value); } } [UnityEditor.MenuItem(BootStrapperMenuPath, false)] private static void ToggleActivateBootStrapper() { IsActivateBootStrapper = !IsActivateBootStrapper; UnityEditor.Menu.SetChecked(BootStrapperMenuPath, IsActivateBootStrapper); } [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] public static void SystemBoot() { Scene activeScene = EditorSceneManager.GetActiveScene(); if (IsActivateBootStrapper && false == activeScene.name.Equals("Main")) { InternalBoot(); } } private static void InternalBoot() { Main.Singleton.Initialize(); List playersData = PlayerDataManager.Singleton.playersData; PlayerPrefs.SetInt("SelectedPlayerIndex", 0); PlayerDataManager.Singleton.SetCurrentUserData(); // HeartDataManager.Singleton.(); List skillDatas = SkillDataManager.Singleton.skillDatas; SkillDataManager.Singleton.SetSkillInstances(); // TODO : Custom Order After System Load // UIManager.Show(UIList.IngameUI); // UIManager.Show(UIList.LobbyUI); UIManager.Show(UIList.ControllerUI); ControllerUI.Instance.Initalize(); // UIManager.Show(UIList.IngameOptionUI); // UIManager.Show(UIList.CharaterCreateUI); // UIManager.Show(UIList.TitleUI); } } } #endif