12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- using Common.Utility.CombatEvent;
- using Core.State;
- using Fort23.Core;
- using GameLogic.Combat.CombatState;
- using GameLogic.Combat.CombatType;
- using GameLogic.CombatScenesTool;
- using UnityEngine;
- namespace GameLogic.Combat.CombatTool
- {
- public class CombatController
- {
- public static CombatController currActiveCombat;
- public CombatHeroController CombatHeroController;
- public CombatCameraControllder CombatCameraControllder;
- public CombatTypeBasic CombatTypeBasic;
- protected StateControl stateControl;
- private AssetHandle scenesHandle;
- public GameObject gameObject;
- public bool isUpdate;
- public CombatStateBasic CurrState
- {
- get { return stateControl.CurrIState as CombatStateBasic; }
- }
- public async CTask InitCombat()
- {
- currActiveCombat = this;
- stateControl = new StateControl();
- stateControl.AddState("idle", new CombatIdleState(this));
- stateControl.AddState("update", new CombatUpdateState(this));
- scenesHandle =
- await AssetBundleLoadManager.Instance.LoadAssetAsyncTask<GameObject>("TestCombatScenes.prefab");
- gameObject = scenesHandle.AssetObject<GameObject>();
- gameObject.SetActive(true);
- Camera camera = gameObject.transform.GetComponentInChildren<Camera>();
- CombatCameraControllder = new CombatCameraControllder();
- CombatCameraControllder.Init(this, camera);
- CombatHeroController = new CombatHeroController();
- CombatHeroController.Init(this);
- CombatTypeBasic = new TestCombatType();
- CombatTypeBasic.Init(this);
- await CombatTypeBasic.StartGame();
- ChangeState("update");
- isUpdate = true;
- }
- public void ChangeState(string name)
- {
- stateControl.ChangeState(name);
- }
- public void Update(float t)
- {
- if (!isUpdate)
- {
- return;
- }
- stateControl.Update(t);
- }
- }
- }
|