1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
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);
 
        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()
    {
        ReleaseMgrs();
    }
 
    private static void ReleaseMgrs()
    {
        foreach (var manager in managers)
        {
            manager.Release();
        }
 
        managers.Clear();
    }
    
    /// <summary>
    /// 打开登录界面
    /// </summary>
    private static void OpenLoginUI()
    {
 
 
 
    }
}