GameEnter.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. using System;
  4. namespace WildAttack
  5. {
  6. /// <summary>
  7. /// 游戏入口
  8. /// </summary>
  9. public class GameEnter : MonoBehaviour
  10. {
  11. /// <summary>
  12. /// 协程数
  13. /// </summary>
  14. private int coroutineNum = 7;
  15. void Awake()
  16. {
  17. SingletonManager.Clear();
  18. // 数据类init
  19. ModuleInit();
  20. }
  21. void Start()
  22. {
  23. UserGameAnalyse1.CreateWhenGameStart(14);
  24. }
  25. void OnDestroy()
  26. {
  27. SingletonManager.Clear();
  28. }
  29. /// <summary>
  30. /// 对象池init
  31. /// </summary>
  32. private void ObjectPoolInit()
  33. {
  34. EnemyPool.GetInstance().Init();
  35. BalloonPool.GetInstance().Init();
  36. }
  37. /// <summary>
  38. /// 数据类init
  39. /// </summary>
  40. void ModuleInit()
  41. {
  42. StartCoroutine(GameModule.GetInstance().LoadCSV("global.csv", () => { CoroutineSubNum(); }));
  43. StartCoroutine(MonsterModule.GetInstance().LoadCSV("monster.csv", () => { CoroutineSubNum(); }));
  44. StartCoroutine(WeaponModule.GetInstance().LoadCSV("weapon.csv", () => { CoroutineSubNum(); }));
  45. StartCoroutine(StagePropertyModule.GetInstance().LoadCSV("stageProperty.csv", () => { CoroutineSubNum(); }));
  46. StartCoroutine(WayPointModule.GetInstance().LoadCSV("wayPoint.csv", () => { CoroutineSubNum(); }));
  47. StartCoroutine(ProcessModule.GetInstance().LoadCSV("process.csv", () => { CoroutineSubNum(); }));
  48. StartCoroutine(StringModule.GetInstance().LoadCSV("strings.csv", () => { CoroutineSubNum(); }));
  49. }
  50. /// <summary>
  51. /// 协程全部运行完 执行其他类的update
  52. /// </summary>
  53. void Update()
  54. {
  55. if (coroutineNum == 0)
  56. {
  57. GameMananger.GetInstance().Update();
  58. ProcessManager.GetInstance().Update();
  59. }
  60. }
  61. /// <summary>
  62. /// 判断协程进度
  63. /// </summary>
  64. public void CoroutineSubNum()
  65. {
  66. coroutineNum--;
  67. if (coroutineNum == 0)
  68. {
  69. ObjectPoolInit();
  70. UIManager.GetInstance().Init(() =>
  71. {
  72. FlotagePool.GetInstance().Init();
  73. EnemyManager.GetInstance().Init();
  74. ProcessManager.GetInstance().Init();
  75. });
  76. GameMananger.GetInstance().Init();
  77. }
  78. }
  79. }
  80. }