using UnityEngine;
using UnityEngine.UI;
using System;
namespace WildAttack
{
///
/// 游戏入口
///
public class GameEnter : MonoBehaviour
{
UserGameAnalyse1 userGameAnalyse1;
///
/// 协程数
///
private int coroutineNum = 7;
private bool bCanUpdate = false;
void Awake()
{
SingletonManager.Clear();
userGameAnalyse1 = UserGameAnalyse1.CreateWhenGameStartAndReturn(14);
// 数据类init
ModuleInit();
}
void Start()
{
}
void OnDestroy()
{
SingletonManager.Clear();
}
///
/// 对象池init
///
private void ObjectPoolInit()
{
EnemyPool.GetInstance().Init();
BalloonPool.GetInstance().Init();
}
///
/// 数据类init
///
void ModuleInit()
{
StartCoroutine(GameModule.GetInstance().LoadCSV("global.csv", () => { CoroutineSubNum(); }));
StartCoroutine(MonsterModule.GetInstance().LoadCSV("monster.csv", () => { CoroutineSubNum(); }));
StartCoroutine(WeaponModule.GetInstance().LoadCSV("weapon.csv", () => { CoroutineSubNum(); }));
StartCoroutine(StagePropertyModule.GetInstance().LoadCSV("stageProperty.csv", () => { CoroutineSubNum(); }));
StartCoroutine(WayPointModule.GetInstance().LoadCSV("wayPoint.csv", () => { CoroutineSubNum(); }));
StartCoroutine(ProcessModule.GetInstance().LoadCSV("process.csv", () => { CoroutineSubNum(); }));
StartCoroutine(StringModule.GetInstance().LoadCSV("strings.csv", () => { CoroutineSubNum(); }));
}
///
/// 协程全部运行完 执行其他类的update
///
void Update()
{
if (coroutineNum == 0 && bCanUpdate)
{
GameMananger.GetInstance().Update();
ProcessManager.GetInstance().Update();
}
}
///
/// 判断协程进度
///
public void CoroutineSubNum()
{
coroutineNum--;
if (coroutineNum == 0)
{
ObjectPoolInit();
UIManager.GetInstance().Init(userGameAnalyse1,() =>
{
FlotagePool.GetInstance().Init();
EnemyManager.GetInstance().Init();
ProcessManager.GetInstance().Init();
});
GameMananger.GetInstance().Init(userGameAnalyse1);
bCanUpdate = true;
}
}
}
}