LogicBattleStatePreloading.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. using UnityEngine;
  2. using System.Collections;
  3. public class LogicBattleStatePreloading : LogicBattleState
  4. {
  5. public static LogicBattleState Creator (LogicBattle battle)
  6. {
  7. return new LogicBattleStatePreloading (battle);
  8. }
  9. public LogicBattleStatePreloading (LogicBattle battle)
  10. : base (battle, LogicBattleStateType.Preloading)
  11. {
  12. }
  13. PreloadingStep mStep = PreloadingStep.None;
  14. public override void OnEnter ()
  15. {
  16. mBattle.SetLoadSetting();
  17. LoadScene();
  18. }
  19. public override void OnLeave ()
  20. {
  21. mBattle.RestoreLoadSetting();
  22. }
  23. public override void Update (float deltaTime)
  24. {
  25. if(mStep == PreloadingStep.LoadingScene)
  26. {
  27. if (mBattle.BattleScene.IsLoaded)
  28. {
  29. LoadRole();
  30. }
  31. }
  32. else if (mStep == PreloadingStep.LoadingRoleAssets)
  33. {
  34. if(!BattleMgr.Instance.LoadingRoleModel)
  35. {
  36. LoadFlyWord();
  37. }
  38. }else if(mStep == PreloadingStep.LoadingFlywordAssets)
  39. {
  40. if (BattleFlyWordMgr.Instance.Loaded)
  41. LoadPrepareAssets();
  42. }else if(mStep == PreloadingStep.LoadingPrepareAssets)
  43. {
  44. if (!BattlePrepareManager.Instance.IsLoading)
  45. InstantiateGo();
  46. }else if(mStep == PreloadingStep.LoadingInstantiate)
  47. {
  48. OpenScreen();
  49. }
  50. else if (mStep == PreloadingStep.OpeningScreen) {
  51. EndLoad();
  52. }
  53. }
  54. void LoadScene()
  55. {
  56. mStep = PreloadingStep.LoadingScene;
  57. mBattle.BattleScene.StartLoad();
  58. }
  59. void LoadRole ()
  60. {
  61. mBattle.NotifyLoadProgress(0.2f);
  62. mStep = PreloadingStep.LoadingRoleAssets;
  63. BattleMgr.Instance.LoadRole();
  64. }
  65. void LoadFlyWord()
  66. {
  67. mBattle.NotifyLoadProgress(0.3f);
  68. mStep = PreloadingStep.LoadingFlywordAssets;
  69. BattleFlyWordMgr.Instance.StartLoad();
  70. }
  71. void LoadPrepareAssets()
  72. {
  73. mBattle.NotifyLoadProgress(0.4f);
  74. mStep = PreloadingStep.LoadingPrepareAssets;
  75. BattlePrepareManager.Instance.StartLoad();
  76. }
  77. void InstantiateGo()
  78. {
  79. mStep = PreloadingStep.LoadingInstantiate;
  80. }
  81. void OpenScreen ()
  82. {
  83. mStep = PreloadingStep.OpeningScreen;
  84. }
  85. void EndLoad()
  86. {
  87. mBattle.OnLoadComplete();
  88. ChangeState(LogicBattleStateType.Battle);
  89. }
  90. }