CombatController.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. using Common.Utility.CombatEvent;
  2. using Core.State;
  3. using Fort23.Core;
  4. using GameLogic.Combat.CombatState;
  5. using GameLogic.Combat.CombatType;
  6. using GameLogic.CombatScenesTool;
  7. using UnityEngine;
  8. using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
  9. namespace GameLogic.Combat.CombatTool
  10. {
  11. public class CombatController
  12. {
  13. public static CombatController currActiveCombat;
  14. public CombatHeroController CombatHeroController;
  15. public CombatCameraControllder CombatCameraControllder;
  16. public CombatTypeBasic CombatTypeBasic;
  17. protected StateControl stateControl;
  18. private AssetHandle scenesHandle;
  19. public GameObject gameObject;
  20. public GameTimeLineParticleFactory GameTimeLineParticleFactory;
  21. public bool isUpdate;
  22. public CombatStateBasic CurrState
  23. {
  24. get { return stateControl.CurrIState as CombatStateBasic; }
  25. }
  26. public async CTask InitCombat()
  27. {
  28. GameTimeLineParticleFactory = new GameTimeLineParticleFactory();
  29. TimeLineFxParticleTool.Instance.Init(GameTimeLineParticleFactory);
  30. currActiveCombat = this;
  31. stateControl = new StateControl();
  32. stateControl.AddState("idle", new CombatIdleState(this));
  33. stateControl.AddState("update", new CombatUpdateState(this));
  34. scenesHandle =
  35. await AssetBundleLoadManager.Instance.LoadAssetAsyncTask<GameObject>("Chapter01.prefab");
  36. gameObject = scenesHandle.AssetObject<GameObject>();
  37. gameObject.SetActive(true);
  38. Camera camera = Camera.main;
  39. CombatCameraControllder = new CombatCameraControllder();
  40. CombatCameraControllder.Init(this, camera);
  41. CombatHeroController = new CombatHeroController();
  42. CombatHeroController.Init(this);
  43. CombatTypeBasic = new TestCombatType();
  44. CombatTypeBasic.Init(this);
  45. await CombatTypeBasic.StartGame();
  46. ChangeState("update");
  47. isUpdate = true;
  48. }
  49. public void ChangeState(string name)
  50. {
  51. stateControl.ChangeState(name);
  52. }
  53. public void Update(float t)
  54. {
  55. if (!isUpdate)
  56. {
  57. return;
  58. }
  59. stateControl.Update(t);
  60. }
  61. }
  62. }