| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | using Common.Utility.CombatEvent;using Core.State;using Fort23.Core;using GameLogic.Combat.CombatState;using GameLogic.Combat.CombatType;using GameLogic.CombatScenesTool;using UnityEngine;using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;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 GameTimeLineParticleFactory GameTimeLineParticleFactory;        public bool isUpdate;             public CombatStateBasic CurrState        {            get { return stateControl.CurrIState as CombatStateBasic; }        }        public async CTask InitCombat()        {            GameTimeLineParticleFactory = new GameTimeLineParticleFactory();            TimeLineFxParticleTool.Instance.Init(GameTimeLineParticleFactory);            currActiveCombat = this;            stateControl = new StateControl();            stateControl.AddState("idle", new CombatIdleState(this));            stateControl.AddState("update", new CombatUpdateState(this));            scenesHandle =                await AssetBundleLoadManager.Instance.LoadAssetAsyncTask<GameObject>("Chapter01.prefab");            gameObject = scenesHandle.AssetObject<GameObject>();            gameObject.SetActive(true);            Camera camera = Camera.main;            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);        }    }}
 |