using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using Cysharp.Threading; using Cysharp.Threading.Tasks; /// /// Main类,作为热更新程序集的入口点 /// public class Main { public static List managers = new List(); /// /// 初始化函数,由Launch类调用 /// public static void Init() { Debug.Log("Main.Init() 被调用"); var launchWin = UIManager.Instance.GetUI(); if (launchWin != null) { launchWin.FadeOut(); } SwitchToLoginScene(); } private static void SwitchToLoginScene() { // Debug.Log("打开登录界面"); // UIManager.Instance.OpenWindow(); Debug.Log("切换到登录场景"); ConfigManager.Instance.Init(); StageManager.Instance.ToLoginScene(); DTC0403_tagPlayerLoginLoadOK.finishedLogin = false; DTC0102_tagCDBPlayer.isAfterPlayerDataInitialize = false; } public static async UniTask InitManagers() { ReleaseMgrs(); // 初始化游戏系统 managers.Add(BattleManager.Instance); managers.Add(VirtualPackManager.Instance); managers.Add(RoleParticularModel.Instance); managers.Add(RechargeManager.Instance); managers.Add(RoleParticularModel.Instance); managers.Add(StoreModel.Instance); managers.Add(PhantasmPavilionModel.Instance); managers.Add(FairyModel.Instance); managers.Add(TeamManager.Instance); managers.Add(TaskManager.Instance); managers.Add(DailySpecialsModel.Instance); managers.Add(MailManager.Instance); managers.Add(PackManager.Instance); managers.Add(HappyXBModel.Instance); managers.Add(HeroManager.Instance); managers.Add(GMCmdManager.Instance); managers.Add(FairyEmblemModel.Instance); managers.Add(EquipModel.Instance); managers.Add(DungeonModel.Instance); managers.Add(DailyQuestModel.Instance); managers.Add(CustomizedRechargeModel.Instance); managers.Add(CustomizedGiftModel.Instance); managers.Add(ChatManager.Instance); managers.Add(ChatBubbleManager.Instance); managers.Add(OfficialRankManager.Instance); foreach (var manager in managers) { manager.Init(); } await UniTask.Yield(); } public static void OnEnterGameScene() { // 初始化游戏场景 Debug.Log("初始化游戏场景"); foreach (var manager in managers) { manager.RequestNessaryData(); } UIManager.Instance.CloseWindow(); UIManager.Instance.CloseWindow(); } public static void OnSwitchToLoginScene() { ReleaseMgrs(); } private static void ReleaseMgrs() { foreach (var manager in managers) { manager.Release(); } managers.Clear(); } /// /// 打开登录界面 /// private static void OpenLoginUI() { } }