CombatController.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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. namespace GameLogic.Combat.CombatTool
  9. {
  10. public class CombatController
  11. {
  12. public static CombatController currActiveCombat;
  13. public CombatHeroController CombatHeroController;
  14. public CombatCameraControllder CombatCameraControllder;
  15. public CombatTypeBasic CombatTypeBasic;
  16. protected StateControl stateControl;
  17. private AssetHandle scenesHandle;
  18. public GameObject gameObject;
  19. public bool isUpdate;
  20. public CombatStateBasic CurrState
  21. {
  22. get { return stateControl.CurrIState as CombatStateBasic; }
  23. }
  24. public async CTask InitCombat()
  25. {
  26. currActiveCombat = this;
  27. stateControl = new StateControl();
  28. stateControl.AddState("idle", new CombatIdleState(this));
  29. stateControl.AddState("update", new CombatUpdateState(this));
  30. scenesHandle =
  31. await AssetBundleLoadManager.Instance.LoadAssetAsyncTask<GameObject>("TestCombatScenes.prefab");
  32. gameObject = scenesHandle.AssetObject<GameObject>();
  33. gameObject.SetActive(true);
  34. Camera camera = gameObject.transform.GetComponentInChildren<Camera>();
  35. CombatCameraControllder = new CombatCameraControllder();
  36. CombatCameraControllder.Init(this, camera);
  37. CombatHeroController = new CombatHeroController();
  38. CombatHeroController.Init(this);
  39. CombatTypeBasic = new TestCombatType();
  40. CombatTypeBasic.Init(this);
  41. await CombatTypeBasic.StartGame();
  42. ChangeState("update");
  43. isUpdate = true;
  44. }
  45. public void ChangeState(string name)
  46. {
  47. stateControl.ChangeState(name);
  48. }
  49. public void Update(float t)
  50. {
  51. if (!isUpdate)
  52. {
  53. return;
  54. }
  55. stateControl.Update(t);
  56. }
  57. }
  58. }