| using System;  | 
| using System.Collections;  | 
| using System.Collections.Generic;  | 
| using UnityEngine;  | 
| using Cysharp.Threading;  | 
| using Cysharp.Threading.Tasks;  | 
|   | 
| /// <summary>  | 
| /// Main类,作为热更新程序集的入口点  | 
| /// </summary>  | 
| public class Main  | 
| {  | 
|     public static List<IGameSystemManager> managers = new List<IGameSystemManager>();  | 
|   | 
|     /// <summary>  | 
|     /// 初始化函数,由Launch类调用  | 
|     /// </summary>  | 
|     public static void Init()  | 
|     {  | 
|         Debug.Log("Main.Init() 被调用");  | 
|         var launchWin = UIManager.Instance.GetUI<LaunchWin>();  | 
|         if (launchWin != null)  | 
|         {  | 
|             launchWin.FadeOut();  | 
|         }  | 
|         SwitchToLoginScene();  | 
|     }  | 
|   | 
|     private static void SwitchToLoginScene()  | 
|     {  | 
|         // Debug.Log("打开登录界面");  | 
|         // UIManager.Instance.OpenWindow<LoginWin>();  | 
|         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);  | 
|         managers.Add(RankModel.Instance);  | 
|         managers.Add(PlayerMainDate.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<LaunchBackGroundWin>();  | 
|         UIManager.Instance.CloseWindow<LoginWin>();  | 
|     }  | 
|   | 
|     public static void OnSwitchToLoginScene()  | 
|     {  | 
|         //  前面有重新InitManagers了 这里就不在做清除  | 
|         // ReleaseMgrs();  | 
|     }  | 
|   | 
|     private static void ReleaseMgrs()  | 
|     {  | 
|         foreach (var manager in managers)  | 
|         {  | 
|             manager.Release();  | 
|         }  | 
|   | 
|         managers.Clear();  | 
|     }  | 
|       | 
|     /// <summary>  | 
|     /// 打开登录界面  | 
|     /// </summary>  | 
|     private static void OpenLoginUI()  | 
|     {  | 
|   | 
|   | 
|   | 
|     }  | 
| } |