| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- using UnityEngine;
- using UnityEngine.UI;
- using System;
- namespace WildAttack
- {
- /// <summary>
- /// 游戏入口
- /// </summary>
- public class GameEnter : MonoBehaviour
- {
- UserGameAnalyse1 userGameAnalyse1;
- /// <summary>
- /// 协程数
- /// </summary>
- private int coroutineNum = 7;
- private bool bCanUpdate = false;
- //初始化游戏时候类型
- [SerializeField]
- private GameTypeEnum initGameType = GameTypeEnum.SinglePlayer;
- void Awake()
- {
- if (initGameType == GameTypeEnum.LocalTwoPlayer) {
- //开始游戏设置成双点模式
- InfraredDemo._ins?.SetSinglePoint(false, ScreenPointTypeEnum.FullScreen);
- }
- SingletonManager.Clear();
- userGameAnalyse1 = UserGameAnalyse1.CreateWhenGameStartAndReturn(14);
- // 数据类init
- ModuleInit();
- }
- void Start()
- {
- }
- void OnDestroy()
- {
- SingletonManager.Clear();
- }
- /// <summary>
- /// 对象池init
- /// </summary>
- private void ObjectPoolInit()
- {
- EnemyPool.GetInstance().Init();
- BalloonPool.GetInstance().Init();
- }
- /// <summary>
- /// 数据类init
- /// </summary>
- 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(); }));
- }
- /// <summary>
- /// 协程全部运行完 执行其他类的update
- /// </summary>
- void Update()
- {
- if (coroutineNum == 0 && bCanUpdate)
- {
- GameMananger.GetInstance().Update();
- ProcessManager.GetInstance().Update();
- }
- }
- /// <summary>
- /// 判断协程进度
- /// </summary>
- public void CoroutineSubNum()
- {
- coroutineNum--;
- if (coroutineNum == 0)
- {
- ObjectPoolInit();
- //提前初始化GameType,其他不处理
- GameMananger.GetInstance().InitGameType(initGameType);
- //初始化绑定位置函数
- FindAnyObjectByType<SmartBowController>().onInit();
- UIManager.GetInstance().Init(userGameAnalyse1,() =>
- {
- FlotagePool.GetInstance().Init();
- EnemyManager.GetInstance().Init();
- ProcessManager.GetInstance().Init();
- });
- GameMananger.GetInstance().Init(userGameAnalyse1);
- bCanUpdate = true;
- }
- }
- }
- }
|