using System; using Fort23.Core; using Fort23.Mono; using Fort23.UTool; using GameLogic.Combat.CombatTool; using GameLogic.Combat.CombatType; using GameLogic.CombatScenesTool; using GameUI.Combat; using UnityEngine; using Utility; namespace GameLogic.Combat { public class CombatDrive : Singleton { public CombatController CombatController; private CombatMonoBaisc combatMonoBaisc; public async CTask Init() { string name = "CombatRoot.prefab"; AssetHandle assetHandle = await AssetBundleLoadManager.Instance.LoadAssetAsyncTask(name); assetHandle.AssetObject().SetActive(true); // } public void AddCombatController(CombatController combatController) { this.CombatController = combatController; } public async CTask StartCombat(StartCombatInfo startCombatInfo) { combatMonoBaisc = new CombatMonoBaisc(); CombatEquipFallManager.Instance.Dispose(); CombatEquipFallManager.Instance.Init(); CTaskAwaitBuffer cTaskAwaitBuffer = new CTaskAwaitBuffer(); CombatShowTextPanel.OpenCombatShowTextPanel(cTaskAwaitBuffer); cTaskAwaitBuffer.AddTask(combatMonoBaisc.Init(CombatController)); await cTaskAwaitBuffer.WaitAll(); await ZhuanPanPanel.OpenZhuanPanPanel(); LogTool.Log("战斗逻辑自己写"); await CombatController.InitCombat(startCombatInfo); StaticUpdater.Instance.AddRenderUpdateCallBack(Update); } public void Update() { float t = Time.deltaTime; CombatController.Update(t); combatMonoBaisc.Update(t); } public void Dispose() { StaticUpdater.Instance.RemoveRenderUpdateCallBack(Update); } } }