using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using Cysharp.Threading;
|
using Cysharp.Threading.Tasks;
|
using System.Threading.Tasks;
|
|
/// <summary>
|
/// Main类,作为热更新程序集的入口点
|
/// </summary>
|
public class Main
|
{
|
public static List<IGameSystemManager> managers = new List<IGameSystemManager>();
|
|
/// <summary>
|
/// 初始化函数,由Launch类调用
|
/// </summary>
|
public static async UniTask Init()
|
{
|
Debug.Log("Main.Init() 被调用");
|
await InitSystems();
|
|
Debug.Log("关闭加载界面");
|
LaunchLoadingWin.Instance.CloseWindow();
|
|
SwitchToLoginScene();
|
}
|
|
/// <summary>
|
/// 初始化游戏系统
|
/// </summary>
|
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<LoginWin>();
|
Debug.Log("切换到登录场景");
|
ConfigManager.Instance.Init();
|
StageManager.Instance.ToLoginScene();
|
}
|
|
public static void OnEnterGameScene()
|
{
|
// 初始化游戏场景
|
Debug.Log("初始化游戏场景");
|
|
// 初始化游戏系统
|
managers.Add(PlaceManager.Instance);
|
managers.Add(BattleManager.Instance);
|
managers.Add(TeamManager.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();
|
}
|
|
/// <summary>
|
/// 打开登录界面
|
/// </summary>
|
private static void OpenLoginUI()
|
{
|
|
|
|
}
|
}
|