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()
{
// 前面有重新InitManagers了 这里就不在做清除
// ReleaseMgrs();
}
private static void ReleaseMgrs()
{
foreach (var manager in managers)
{
manager.Release();
}
managers.Clear();
}
///
/// 打开登录界面
///
private static void OpenLoginUI()
{
}
}