using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using Cysharp.Threading; using Cysharp.Threading.Tasks; using System.Threading.Tasks; /// /// Main类,作为热更新程序集的入口点 /// public class Main { public static List managers = new List(); /// /// 初始化函数,由Launch类调用 /// public static async UniTask Init() { Debug.Log("Main.Init() 被调用"); await InitSystems(); Debug.Log("关闭加载界面"); LaunchLoadingWin.Instance.CloseWindow(); SwitchToLoginScene(); } /// /// 初始化游戏系统 /// private static async UniTask InitSystems() { // 这里可以初始化大型系统 贯穿整个游戏的系统 await ResManager.Instance.Init(); UIManager.Instance.Init(); StageManager.Instance.Init(); LoginManager.Instance.Init(); } private static void SwitchToLoginScene() { // Debug.Log("打开登录界面"); // UIManager.Instance.OpenWindow(); Debug.Log("切换到登录场景"); ConfigManager.Instance.Init(); StageManager.Instance.ToLoginScene(); } public static void OnEnterGameScene() { // 初始化游戏场景 Debug.Log("初始化游戏场景"); // 初始化游戏系统 managers.Add(BattleManager.Instance); foreach (var manager in managers) { manager.Init(); } foreach (var manager in managers) { manager.RequestNessaryData(); } } public static void OnSwitchToLoginScene() { foreach (var manager in managers) { manager.Release(); } managers.Clear(); } /// /// 打开登录界面 /// private static void OpenLoginUI() { } }