hch
2025-08-28 16a90aa94d8579cc120c9962d389b59bda5e7398
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
119
120
121
122
123
124
125
126
127
128
129
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();
        GeneralDefine.Init();
#if UNITY_EDITOR
        SysNotifyMgr.Instance.BeforePlayerDataInitializeEvent();
#endif
        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);
        managers.Add(HeroUIManager.Instance);
        managers.Add(InvestModel.Instance);
        managers.Add(BlessLVManager.Instance);
        managers.Add(AutoFightModel.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()
    {
 
 
 
    }
}