From 8f206fa93893850ef5a041358082dec8a37015ce Mon Sep 17 00:00:00 2001 From: liutao <821580467@qq.com> Date: Thu, 14 Dec 2023 18:25:52 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=8F=E4=BC=A0cellindex?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scripts/Framework/Data/TableManager.cs | 2 +- .../Gameplay/AI/Conditional/BTBeginPatrol.cs | 2 +- .../AI/Conditional/BTBeingAttacked.cs | 2 +- .../Gameplay/AI/Conditional/BTChainTrigger.cs | 2 +- .../AI/Conditional/BTHasReceivdCalled.cs | 2 +- .../Gameplay/AI/Conditional/BTWithinSight.cs | 2 +- .../Scripts/Gameplay/AI/Task/BTMoveAway.cs | 4 +- .../Code/Scripts/Gameplay/AI/Task/BTMoveTo.cs | 4 +- .../Gameplay/AI/Task/BTSendChainCall.cs | 2 +- .../Code/Scripts/Gameplay/AI/Task/BTWait.cs | 2 +- .../Scripts/Gameplay/Area/Path/PathFinder.cs | 5 + .../Scripts/Gameplay/Bounds/BoundsManager.cs | 6 +- .../Bounds/Data/CombieSingleBounds.cs | 6 +- .../Scripts/Gameplay/Buff/GlobalBuffCacher.cs | 8 +- .../Buff/Impl/Status/StatusBuffChaos.cs | 5 +- .../Gameplay/Character/Character.State.cs | 6 +- .../State/FullState/FullStateSkill.cs | 6 +- .../Scripts/Gameplay/Debug/SROptions.GM.cs | 6 +- .../Scripts/Gameplay/Level/Level.Select.cs | 2 +- .../Code/Scripts/Gameplay/Level/Level.cs | 5 - .../Gameplay/Level/State/BattleState.cs | 8 +- .../Gameplay/Level/State/PrepareState.cs | 11 +- .../Assets/Code/Scripts/Gameplay/Map/Map.cs | 13 +-- .../Code/Scripts/Gameplay/Map/MapData.cs | 9 +- .../Scripts/Gameplay/Pause/PauseManager.cs | 6 +- .../PlayerSkill/Logic/PlayerSkillLogic02.cs | 6 +- .../PlayerSkill/Logic/PlayerSkillLogic06.cs | 6 +- .../Gameplay/Summon/State/SummonStateTent2.cs | 6 +- .../Code/Scripts/Gameplay/Team/TeamManager.cs | 12 +- .../FightReady/UITeamFightController.cs | 8 +- .../FightReady/UIVehicleHeadItemNode.cs | 4 +- .../FightSceneUI/UICharacterStateBar.cs | 2 +- .../FightSceneUI/UIFightSceneController.cs | 14 +-- .../FightSceneUI/UIVehicleStateBar.cs | 4 +- .../Scripts/Gameplay/Unit/GameUnitManager.cs | 2 +- .../Scripts/Gameplay/Unit/GameUnitMapper.cs | 108 ------------------ .../Gameplay/Unit/GameUnitMapper.cs.meta | 3 - .../Gameplay/Vehicle/Impl/NormalVehicle.cs | 6 +- .../Editor/FightDebug/FightDebugWindow.cs | 6 +- 39 files changed, 99 insertions(+), 214 deletions(-) delete mode 100644 ProjectNLD/Assets/Code/Scripts/Gameplay/Unit/GameUnitMapper.cs delete mode 100644 ProjectNLD/Assets/Code/Scripts/Gameplay/Unit/GameUnitMapper.cs.meta diff --git a/ProjectNLD/Assets/Code/Scripts/Framework/Data/TableManager.cs b/ProjectNLD/Assets/Code/Scripts/Framework/Data/TableManager.cs index aeffe9c1684..e93681609d4 100644 --- a/ProjectNLD/Assets/Code/Scripts/Framework/Data/TableManager.cs +++ b/ProjectNLD/Assets/Code/Scripts/Framework/Data/TableManager.cs @@ -24,7 +24,7 @@ namespace Framework public static JSONNode LoadByteBuf(string file) { - DebugUtil.LogY("TableManager LoadByteBuf {0}", file); + // DebugUtil.LogY("TableManager LoadByteBuf {0}", file); var filePath = _CombiePath(file); var loadAsset = AssetManager.Instance.LoadAsset(filePath); var jsonText = loadAsset.text; diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Conditional/BTBeginPatrol.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Conditional/BTBeginPatrol.cs index ff4660733ee..40657bb1ae3 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Conditional/BTBeginPatrol.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Conditional/BTBeginPatrol.cs @@ -16,7 +16,7 @@ namespace Code.Scripts.Gameplay.BT.Task private GameUnit _owner; public override void OnStart() { - _owner = GameUnitMapper.Inst.GetUnitById(SharedBattleInfo.Value.ownerId); + _owner = GameUnitManager.instance.infightUnits.Search(SharedBattleInfo.Value.ownerId); if (SharedBattleInfo.Value.PartolPointIndex == -1) { diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Conditional/BTBeingAttacked.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Conditional/BTBeingAttacked.cs index ef04f2a250f..c8bc6a0aec7 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Conditional/BTBeingAttacked.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Conditional/BTBeingAttacked.cs @@ -28,7 +28,7 @@ namespace Code.Scripts.Gameplay.BT.Conditional _isBeingAttacked = false; } - _owner = GameUnitMapper.Inst.GetUnitById(SharedBattleInfo.Value.ownerId); + _owner = GameUnitManager.instance.infightUnits.Search(SharedBattleInfo.Value.ownerId); } private void OnDamaged(EventDataGetDamaged data) diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Conditional/BTChainTrigger.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Conditional/BTChainTrigger.cs index 417d82353e1..b1b94410483 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Conditional/BTChainTrigger.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Conditional/BTChainTrigger.cs @@ -16,7 +16,7 @@ namespace Code.Scripts.Gameplay.BT.Conditional public override void OnStart() { - _owner = GameUnitMapper.Inst.GetUnitById(SharedBattleInfo.Value.ownerId); + _owner = GameUnitManager.instance.infightUnits.Search(SharedBattleInfo.Value.ownerId); } diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Conditional/BTHasReceivdCalled.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Conditional/BTHasReceivdCalled.cs index 6442531bfa6..37cb2571685 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Conditional/BTHasReceivdCalled.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Conditional/BTHasReceivdCalled.cs @@ -20,7 +20,7 @@ namespace Code.Scripts.Gameplay.BT.Conditional public override void OnStart() { - _owner = GameUnitMapper.Inst.GetUnitById(SharedBattleInfo.Value.ownerId); + _owner = GameUnitManager.instance.infightUnits.Search(SharedBattleInfo.Value.ownerId); if (!_isRegistered) { EventManager.Instance.Register(EventManager.EventName.INFIGHT_CHARACTER_AI_CHAIN, OnSpecialTriggerChanged); diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Conditional/BTWithinSight.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Conditional/BTWithinSight.cs index e56ae28a55f..7e5a34b2aa7 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Conditional/BTWithinSight.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Conditional/BTWithinSight.cs @@ -18,7 +18,7 @@ namespace Code.Scripts.Gameplay.BT.Conditional public override void OnStart() { _level = LevelManager.Instance.CurrentLevel; - _owner = GameUnitMapper.Inst.GetUnitById(SharedBattleInfo.Value.ownerId); + _owner = GameUnitManager.instance.infightUnits.Search(SharedBattleInfo.Value.ownerId); DebugUtil.LogG($"BTWithinSight OnAwake, aiOwner id: {_owner?.GetID()}"); } diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Task/BTMoveAway.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Task/BTMoveAway.cs index 26392942f4e..659285e65c0 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Task/BTMoveAway.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Task/BTMoveAway.cs @@ -14,7 +14,7 @@ namespace Code.Scripts.Gameplay.BT.Task public override void OnStart() { - _owner = GameUnitMapper.Inst.GetUnitById(SharedBattleInfo.Value.ownerId); + _owner = GameUnitManager.instance.infightUnits.Search(SharedBattleInfo.Value.ownerId); if (_owner != null) { @@ -26,7 +26,7 @@ namespace Code.Scripts.Gameplay.BT.Task { if (SharedBattleInfo.Value.theChosenOneId != Constants.INVALID_UINT_ID && !AIUtils.IsNeedStop(_owner)) { - _owner?.MoveAway(GameUnitMapper.Inst.GetUnitById(SharedBattleInfo.Value.theChosenOneId)); + _owner?.MoveAway(GameUnitManager.instance.infightUnits.Search(SharedBattleInfo.Value.theChosenOneId)); DebugUtil.LogG($"BT move away update success, owner: {_owner?.GetID()}, target: {SharedBattleInfo.Value.theChosenOneId}"); } diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Task/BTMoveTo.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Task/BTMoveTo.cs index 5c5fa019bc0..7b834843b1a 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Task/BTMoveTo.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Task/BTMoveTo.cs @@ -17,7 +17,7 @@ namespace Code.Scripts.Gameplay.BT.Task public override void OnStart() { - _owner = GameUnitMapper.Inst.GetUnitById(SharedBattleInfo.Value.ownerId); + _owner = GameUnitManager.instance.infightUnits.Search(SharedBattleInfo.Value.ownerId); if (_owner != null) { @@ -32,7 +32,7 @@ namespace Code.Scripts.Gameplay.BT.Task if(_lastTarget != SharedBattleInfo.Value.theChosenOneId && !AIUtils.IsNeedStop(_owner)) { _lastTarget = SharedBattleInfo.Value.theChosenOneId; - _owner?.MoveTo(GameUnitMapper.Inst.GetUnitById(SharedBattleInfo.Value.theChosenOneId)); + _owner?.MoveTo(GameUnitManager.instance.infightUnits.Search(SharedBattleInfo.Value.theChosenOneId)); DebugUtil.LogG($"BT move to update success, owner: {_owner?.GetID()}, target: {SharedBattleInfo.Value.theChosenOneId}"); } diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Task/BTSendChainCall.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Task/BTSendChainCall.cs index ad9a3d890a9..3e050553543 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Task/BTSendChainCall.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Task/BTSendChainCall.cs @@ -16,7 +16,7 @@ namespace Code.Scripts.Gameplay.BT.Task public override void OnStart() { - _owner = GameUnitMapper.Inst.GetUnitById(SharedBattleInfo.Value.ownerId); + _owner = GameUnitManager.instance.infightUnits.Search(SharedBattleInfo.Value.ownerId); } public override TaskStatus OnUpdate() diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Task/BTWait.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Task/BTWait.cs index 762519bfe2b..407a4f08bef 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Task/BTWait.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/AI/Task/BTWait.cs @@ -23,7 +23,7 @@ namespace Code.Scripts.Gameplay.BT.Task public override void OnStart() { // Remember the start time. - _owner = GameUnitMapper.Inst.GetUnitById(SharedBattleInfo.Value.ownerId); + _owner = GameUnitManager.instance.infightUnits.Search(SharedBattleInfo.Value.ownerId); startTime = Time.time; waitTime = SharedBattleInfo.Value.PatrolInfos[SharedBattleInfo.Value.PartolPointIndex].waitTime; waitDuration = waitTime; diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/Area/Path/PathFinder.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/Area/Path/PathFinder.cs index af196f97b5b..28adc7530ca 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/Area/Path/PathFinder.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/Area/Path/PathFinder.cs @@ -25,6 +25,11 @@ namespace Gameplay var canReach = true; var mapData = map.GetBlockData(to); + if (mapData == null) + { + canReach = false; + return result; + } if (!MapUtils.CanPass(moveLevel, mapData.GetTerrainTypeProperty())) { // 如果终点不可通行,直接走无法走通的逻辑 diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/Bounds/BoundsManager.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/Bounds/BoundsManager.cs index 0a3eb6dc8ac..23a706a4533 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/Bounds/BoundsManager.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/Bounds/BoundsManager.cs @@ -103,10 +103,10 @@ namespace Utils.Bounds } // 对所有角色进行处理 - var units = GameUnitMapper.Inst.unitList; - for (int i = 0; i < units.Count; i++) + var units = GameUnitManager.instance.infightUnits; + for (int i = 0; i < units.count; i++) { - _OnUnitReady(units[i]); + _OnUnitReady(units.GetByIndex(i)); } EventManager.Instance.Register(EventManager.EventName.INFIGHT_UNIT_READY, _OnUnitReady); diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/Bounds/Data/CombieSingleBounds.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/Bounds/Data/CombieSingleBounds.cs index 35f6c7289c6..947ede84701 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/Bounds/Data/CombieSingleBounds.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/Bounds/Data/CombieSingleBounds.cs @@ -87,10 +87,10 @@ namespace Utils.Bounds.Data private List _FilterUnits(EBoundsTarget targetType) { var result = new List(); - var allUnits = GameUnitMapper.Inst.unitList; - for (int i = 0; i < allUnits.Count; i++) + var allUnits = GameUnitManager.instance.infightUnits; + for (int i = 0; i < allUnits.count; i++) { - var unit = allUnits[i]; + var unit = allUnits.GetByIndex(i); if (unit == null) continue; if (unit.statusData.isDead) continue; var canAdd = _FilterUnit(targetType, unit); diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/Buff/GlobalBuffCacher.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/Buff/GlobalBuffCacher.cs index 614250c57b8..09b35398bc6 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/Buff/GlobalBuffCacher.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/Buff/GlobalBuffCacher.cs @@ -43,10 +43,10 @@ namespace Gameplay.Buff public void Init() { - var allUnits = GameUnitMapper.Inst.unitList; - for (int i = 0; i < allUnits.Count; i++) + var allUnits = GameUnitManager.instance.infightUnits; + for (int i = 0; i < allUnits.count; i++) { - var unit = allUnits[i]; + var unit = allUnits.GetByIndex(i); if (unit.gameunitType != EGameUnitType.Character) continue; if (unit.statusData.isDead) continue; if (unit.commonData.troopId != creator.commonData.troopId) continue; @@ -59,7 +59,7 @@ namespace Gameplay.Buff for (int i = 0; i < _addUnitIds.Count; i++) { var unitId = _addUnitIds[i]; - var getUnit = GameUnitMapper.Inst.GetUnitById(unitId); + var getUnit = GameUnitManager.instance.infightUnits.Search(unitId); if (getUnit == null) continue; if (getUnit.statusData.isDead) continue; getUnit.buffManager.RemoveBuffById(buffId); diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/Buff/Impl/Status/StatusBuffChaos.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/Buff/Impl/Status/StatusBuffChaos.cs index f8030272321..7e3b25967a4 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/Buff/Impl/Status/StatusBuffChaos.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/Buff/Impl/Status/StatusBuffChaos.cs @@ -44,11 +44,12 @@ namespace Gameplay.Buff if (owner.statusData.isChaos && owner.controlData.targetEnemy == null) { // 找最近的unit - var allUnits = GameUnitMapper.Inst.unitList; + var allUnits = GameUnitManager.instance.infightUnits; var minDistance = float.MaxValue; GameUnit minUnit = null; - foreach (var unit in allUnits) + for (var i = 0; i < allUnits.count; ++i) { + var unit = allUnits.GetByIndex(i); if (unit == owner) continue; if (!unit.statusData.CheckCanBeTarget()) continue; var distance = Vector3.Distance(unit.transData.pos, owner.transData.pos); diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/Character/Character.State.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/Character/Character.State.cs index e24419ff412..8604487f35f 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/Character/Character.State.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/Character/Character.State.cs @@ -121,10 +121,10 @@ namespace Gameplay.Character // controlData.targetEnemy = null; GameUnit target = null; - var allUnits = GameUnitMapper.Inst.unitList; - for (var i = 0; i < allUnits.Count; ++i) + var allUnits = GameUnitManager.instance.infightUnits; + for (var i = 0; i < allUnits.count; ++i) { - var enemy = allUnits[i]; + var enemy = allUnits.GetByIndex(i); if (enemy == null) continue; if (!enemy.statusData.CheckCanBeTarget()) continue; if (enemy == this) continue; diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/Character/State/FullState/FullStateSkill.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/Character/State/FullState/FullStateSkill.cs index 4abb95fdea5..522dadf6821 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/Character/State/FullState/FullStateSkill.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/Character/State/FullState/FullStateSkill.cs @@ -180,11 +180,11 @@ namespace Gameplay.Character int range) { var map = LevelManager.Instance.CurrentLevel.Map; - var allUnits = GameUnitMapper.Inst.unitList; + var allUnits = GameUnitManager.instance.infightUnits; var result = new List(); - for (var i = 0; i < allUnits.Count; ++i) + for (var i = 0; i < allUnits.count; ++i) { - var searchUnit = allUnits[i]; + var searchUnit = allUnits.GetByIndex(i); if (searchUnit.commonData.troopId == owner.troopId) { // 同一方 diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/Debug/SROptions.GM.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/Debug/SROptions.GM.cs index 4336c5cf7e6..afbe0de0469 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/Debug/SROptions.GM.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/Debug/SROptions.GM.cs @@ -61,10 +61,10 @@ public partial class SROptions [Category("GM"), DisplayName("设置表情")] public void SetEmoji() { - var allUnits = GameUnitMapper.Inst.unitList; - for (int i = 0; i < allUnits.Count; i++) + var allUnits = GameUnitManager.instance.infightUnits; + for (int i = 0; i < allUnits.count; i++) { - var unit = allUnits[i]; + var unit = allUnits.GetByIndex(i); if (unit.gameunitType != EGameUnitType.Character) continue; if (unit is Character character) diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/Level/Level.Select.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/Level/Level.Select.cs index df98e12159f..a0b9e3541e9 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/Level/Level.Select.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/Level/Level.Select.cs @@ -18,7 +18,7 @@ namespace Gameplay.Level public void SelectUnit(uint id) { - var newUnit = GameUnitMapper.Inst.GetUnitById(id); + var newUnit = GameUnitManager.instance.infightUnits.Search(id); if (selectUnit == newUnit) return; if (newUnit.commonData.canSelect) { diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/Level/Level.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/Level/Level.cs index 655f0077047..1e78278e5b7 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/Level/Level.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/Level/Level.cs @@ -146,7 +146,6 @@ namespace Gameplay.Level AIManager.Instance.Init(); GameUnitManager.CreateInstance(); - GameUnitMapper.CreateInstance(); SkillManager.CreateInstance(); BuffManager.CreateInstance(); @@ -156,7 +155,6 @@ namespace Gameplay.Level public void Release() { EmojiManager.inst.Dispose(); - GameUnitMapper.Inst.Dispose(); SkillManager.instance.Dispose(); BuffManager.instance.Dispose(); @@ -215,9 +213,6 @@ namespace Gameplay.Level { // 加载后处理 await _LoadPostProcess(); - - // 初始化GameUnitMapper - GameUnitMapper.Inst.Init(); AreaManager.CreateInstance(); diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/Level/State/BattleState.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/Level/State/BattleState.cs index ca4a8f99777..de2c5358074 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/Level/State/BattleState.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/Level/State/BattleState.cs @@ -123,7 +123,7 @@ namespace Gameplay.Level { if (TeamManager.Instance.IsInLevel(teamSelectID)) { - var unit = GameUnitMapper.Inst.GetUnitById(teamSelectID); + var unit = GameUnitManager.instance.infightUnits.Search(teamSelectID); if (unit.gameunitType == EGameUnitType.Character) { if (unit.statusData.isOnVehicle) @@ -277,7 +277,7 @@ namespace Gameplay.Level { if (TeamManager.Instance.IsInLevel(teamSelectID)) { - var unit = GameUnitMapper.Inst.GetUnitById(teamSelectID); + var unit = GameUnitManager.instance.infightUnits.Search(teamSelectID); if (unit.gameunitType == EGameUnitType.Character) { if (unit.statusData.isOnVehicle) @@ -331,7 +331,7 @@ namespace Gameplay.Level } // 检查通行级别是否可以放置 - var blockData = map.GetBlockData(map.TGSCellIndex2BlockPosition(cellIndex)); + var blockData = map.GetBlockData(cellIndex); if (!MapUtils.CanPass(crossLevel, blockData.GetTerrainTypeProperty())) { return; @@ -402,7 +402,7 @@ namespace Gameplay.Level private void _GetOutVehicle(uint uid, int cellIndex) { - var gameUnit = GameUnitMapper.Inst.GetUnitById(uid); + var gameUnit = GameUnitManager.instance.infightUnits.Search(uid); if (gameUnit != null) { var character = (Character.Character)gameUnit; diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/Level/State/PrepareState.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/Level/State/PrepareState.cs index 13f632d5f9f..b7896d2574f 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/Level/State/PrepareState.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/Level/State/PrepareState.cs @@ -18,10 +18,10 @@ namespace Gameplay.Level // 设置为手动更新 Physics.simulationMode = SimulationMode.Script; Physics2D.simulationMode = SimulationMode2D.Script; - + // 更新地面 Physics.SyncTransforms(); - + } protected override void _OnUpdate(float deltaTime) @@ -99,7 +99,7 @@ namespace Gameplay.Level } // 检查通行级别是否可以放置 - var blockData = map.GetBlockData(map.TGSCellIndex2BlockPosition(cellIndex)); + var blockData = map.GetBlockData(cellIndex); if (!MapUtils.CanPass(crossLevel, blockData.GetTerrainTypeProperty())) { return; @@ -111,7 +111,7 @@ namespace Gameplay.Level var characterIDHere = Constants.INVALID_UINT_ID; bool teamSelectCharacterExist = false; - var unitList = GameUnitManager.instance.totalUnits; + var unitList = GameUnitManager.instance.infightUnits; for (int i = 0; i < unitList.count; i++) { var unit = unitList.GetByIndex(i); @@ -163,9 +163,9 @@ namespace Gameplay.Level var yaw = LevelUtils.SetCharaterToward(_level.GetLevelData().preparingRegionToward); if (teamSelectCharacterExist) { - var unit = GameUnitManager.instance.totalUnits.Search(characterIDHere); if (TeamManager.Instance.SelectID == characterIDHere) { + var unit = GameUnitManager.instance.totalUnits.Search(characterIDHere); // 下阵 switch (unit.gameunitType) { @@ -183,6 +183,7 @@ namespace Gameplay.Level else { // 交换位置 + var unit = GameUnitManager.instance.totalUnits.Search(characterIDHere); var unitHere = unit; var selectUnit = GameUnitManager.instance.totalUnits.Search(TeamManager.Instance.SelectID); diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/Map/Map.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/Map/Map.cs index 2cba1eb394e..19f0096a157 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/Map/Map.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/Map/Map.cs @@ -46,20 +46,9 @@ namespace Gameplay //Object.DestroyImmediate(GameObject); } - public MapBlockData GetBlockData(Vector2Int position) - { - return _mapData.GetBlockData(position); - } - public MapBlockData GetBlockData(int cellIndex) { - var vec2Pos = TGSCellIndex2BlockPosition(cellIndex); - return GetBlockData(vec2Pos); - } - - public bool CheckPosition(Vector2Int position) - { - return _mapData.CheckPosition(position); + return _mapData.GetBlockData(cellIndex); } public void SetTerrainType(int tgsCellIndex, int terrainTypeIndex) diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/Map/MapData.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/Map/MapData.cs index 16ea06dc05b..cbf2c3a29e2 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/Map/MapData.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/Map/MapData.cs @@ -81,9 +81,14 @@ public class MapData } } - public MapBlockData GetBlockData(Vector2Int position) + public MapBlockData GetBlockData(int cellIndex) { - return CheckPosition(position) ? BlocksData[Position2BlockIndex(position)] : null; + if (cellIndex < 0 || cellIndex >= BlocksData.Count) + { + DebugUtil.LogError("GetBlockData failed, position:{0} is invalid!", cellIndex); + return null; + } + return BlocksData[cellIndex]; } public bool CheckPosition(Vector2Int position) diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/Pause/PauseManager.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/Pause/PauseManager.cs index f271d774f0e..365cfb6e5f1 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/Pause/PauseManager.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/Pause/PauseManager.cs @@ -80,10 +80,10 @@ namespace Gameplay.Pause _paticalList = new List(); // 先把场景中的绑定 - var allUnits = GameUnitMapper.Inst.unitList; - for (int i = 0; i < allUnits.Count; i++) + var allUnits = GameUnitManager.instance.infightUnits; + for (int i = 0; i < allUnits.count; i++) { - var unit = allUnits[i]; + var unit = allUnits.GetByIndex(i); _AddUnit(unit); } diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/PlayerSkill/Logic/PlayerSkillLogic02.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/PlayerSkill/Logic/PlayerSkillLogic02.cs index a83847107e4..78cde83eccd 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/PlayerSkill/Logic/PlayerSkillLogic02.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/PlayerSkill/Logic/PlayerSkillLogic02.cs @@ -12,11 +12,11 @@ namespace Gameplay.PlayerSkill.Logic protected override void _SearchUnits() { - var allUnits = GameUnitMapper.Inst.unitList; + var allUnits = GameUnitManager.instance.infightUnits; _selectUnits = new List(); - for (var i = 0; i < allUnits.Count; ++i) + for (var i = 0; i < allUnits.count; ++i) { - var unit = allUnits[i]; + var unit = allUnits.GetByIndex(i); // 只针对己方单位 if (unit.commonData.troopId != owner.playerUnit.commonData.troopId) continue; // 只针对角色生效 diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/PlayerSkill/Logic/PlayerSkillLogic06.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/PlayerSkill/Logic/PlayerSkillLogic06.cs index c15f065b88c..f9baf485b95 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/PlayerSkill/Logic/PlayerSkillLogic06.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/PlayerSkill/Logic/PlayerSkillLogic06.cs @@ -32,10 +32,10 @@ namespace Gameplay.PlayerSkill.Logic if (selectUnit != null) { - var allUnits = GameUnitMapper.Inst.unitList; - for (int i = 0; i < allUnits.Count; i++) + var allUnits = GameUnitManager.instance.infightUnits; + for (int i = 0; i < allUnits.count; i++) { - var unit = allUnits[i]; + var unit = allUnits.GetByIndex(i); if (unit.commonData.troopId != owner.playerUnit.commonData.troopId) { // 只筛选友军 diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/Summon/State/SummonStateTent2.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/Summon/State/SummonStateTent2.cs index e0a905815ba..732e2dea1a5 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/Summon/State/SummonStateTent2.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/Summon/State/SummonStateTent2.cs @@ -61,10 +61,10 @@ namespace Gameplay.Summon { var map = LevelManager.Instance.CurrentLevel.Map; // 由于这里只检测友军,所以直接遍历所有友军即可 - var allUnits = GameUnitMapper.Inst.unitList; - for (int i = 0; i < allUnits.Count; i++) + var allUnits = GameUnitManager.instance.infightUnits; + for (int i = 0; i < allUnits.count; i++) { - var searchUnit = allUnits[i]; + var searchUnit = allUnits.GetByIndex(i); if (searchUnit.gameunitType != EGameUnitType.Character) { // 只对角色生效 diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/Team/TeamManager.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/Team/TeamManager.cs index 9843fe5a71f..6be30f8b176 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/Team/TeamManager.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/Team/TeamManager.cs @@ -455,13 +455,13 @@ public class TeamManager { if (m_waitFightIDList.Contains(uid)) { - // var unit = GameUnitMapper.Inst.GetUnitById(uid); + // var unit = GameUnitManager.instance.infightUnits.Search(uid); // if (unit != null) // { // if (!unit.statusData.isDead && unit.statusData.isOnVehicle) // { // var character = (Character)unit; - // var vehicleUnit = GameUnitMapper.Inst.GetUnitById(character.runtimeData.belongVehicle.GetID()); + // var vehicleUnit = GameUnitManager.instance.infightUnits.Search(character.runtimeData.belongVehicle.GetID()); // LevelManager.Instance.CurrentLevel.ShowUnitAroundRegion(vehicleUnit, isNeedShow); // } // @@ -664,7 +664,7 @@ public class TeamManager { if (IsInLevel(uid) || !m_allCharactersMap.ContainsKey(uid)) { - return GameUnitMapper.Inst.GetUnitById(uid).gameunitType == EGameUnitType.Character; + return GameUnitManager.instance.infightUnits.Search(uid).gameunitType == EGameUnitType.Character; } } return GetUnitType(uid) == SingleTeamCharacterInfo.CharacType.Hero; @@ -674,7 +674,7 @@ public class TeamManager { if (LevelManager.Instance.CurrentLevel.IsInBattle()) { - return GameUnitMapper.Inst.GetUnitById(uid).gameunitType == EGameUnitType.Vehicle; + return GameUnitManager.instance.infightUnits.Search(uid).gameunitType == EGameUnitType.Vehicle; } return GetUnitType(uid) == SingleTeamCharacterInfo.CharacType.Vehicle; } @@ -732,7 +732,7 @@ public class TeamManager { if (IsInLevel(m_waitFightIDList[i])) { - var unit = GameUnitMapper.Inst.GetUnitById(m_waitFightIDList[i]); + var unit = GameUnitManager.instance.infightUnits.Search(m_waitFightIDList[i]); if (unit.statusData.isOnVehicle) { ++totalNum; @@ -749,7 +749,7 @@ public class TeamManager for (int i = 0; i < m_onFightIDList.Count; i++) { - var unit = GameUnitMapper.Inst.GetUnitById(m_onFightIDList[i]); + var unit = GameUnitManager.instance.infightUnits.Search(m_onFightIDList[i]); if (unit.gameunitType == EGameUnitType.Character) { ++totalNum; diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/LevelFight/FightReady/UITeamFightController.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/LevelFight/FightReady/UITeamFightController.cs index 7d9958ee3e8..e7e24ba73d9 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/LevelFight/FightReady/UITeamFightController.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/LevelFight/FightReady/UITeamFightController.cs @@ -446,7 +446,7 @@ public class UITeamFightController : UIWindow { if (ValueValidator.IsIdValid(_changeId) && TeamManager.Instance.GetIsChanging()) { - ToFightCallBack(GameUnitMapper.Inst.GetUnitById(_changeId)); + ToFightCallBack(GameUnitManager.instance.infightUnits.Search(_changeId)); _changeId = 0; } } @@ -888,7 +888,7 @@ public class UITeamFightController : UIWindow } var singleInfo = TeamManager.Instance.GetSingleCharacByUid(uid); - var gameUnit = GameUnitMapper.Inst.GetUnitById(uid); + var gameUnit = GameUnitManager.instance.totalUnits.Search(uid); if (singleInfo.Type == SingleTeamCharacterInfo.CharacType.Vehicle) { @@ -914,7 +914,7 @@ public class UITeamFightController : UIWindow } else if (LevelManager.Instance.CurrentLevel.IsInBattle()) { - if (GameUnitMapper.Inst.GetUnitById(uid) != null) + if (GameUnitManager.instance.infightUnits.Search(uid) != null) { if (gameUnit.statusData.isDead) { @@ -1279,7 +1279,7 @@ public class UITeamFightController : UIWindow } //Character character = LevelManager.Instance.CurrentLevel.CharacterManager.Get(uid); - GameUnit unit = GameUnitMapper.Inst.GetUnitById(uid); + GameUnit unit = GameUnitManager.instance.infightUnits.Search(uid); SetSkillPutState(SkillPutState.Dragging); EventManager.Instance.Send(EventManager.EventName.UI_START_USE_SKILL, unit); InputManager.Instance.enabled = false; diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/LevelFight/FightReady/UIVehicleHeadItemNode.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/LevelFight/FightReady/UIVehicleHeadItemNode.cs index cdcf84f4a5e..c6632cdf3ca 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/LevelFight/FightReady/UIVehicleHeadItemNode.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/LevelFight/FightReady/UIVehicleHeadItemNode.cs @@ -123,13 +123,13 @@ public class UIVehicleHeadItemNode: UIHeadItemNodeBase //分根据当前队列状态进行刷新 if (LevelManager.Instance.CurrentLevel.IsPreparing()) { - PreviewVehicle vehicle = GameUnitMapper.Inst.GetUnitById(uid) as PreviewVehicle; + PreviewVehicle vehicle = GameUnitManager.instance.totalUnits.Search(uid) as PreviewVehicle; _vehicle = vehicle; RefreshBefore(characterData); } else if (LevelManager.Instance.CurrentLevel.IsInBattle()) { - NormalVehicle vehicle = GameUnitMapper.Inst.GetUnitById(uid) as NormalVehicle; + NormalVehicle vehicle = GameUnitManager.instance.totalUnits.Search(uid) as NormalVehicle; _vehicle = vehicle; if (isOnFight) { diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/LevelFight/FightSceneUI/UICharacterStateBar.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/LevelFight/FightSceneUI/UICharacterStateBar.cs index fa55ed02d69..2f0f83d46fd 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/LevelFight/FightSceneUI/UICharacterStateBar.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/LevelFight/FightSceneUI/UICharacterStateBar.cs @@ -30,7 +30,7 @@ public class UICharacterStateBar: UIUnitStateBar return; } - GameUnit character = GameUnitMapper.Inst.GetUnitById(uid); + GameUnit character = GameUnitManager.instance.infightUnits.Search(uid); // if (m_totalHP <= 0) // { diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/LevelFight/FightSceneUI/UIFightSceneController.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/LevelFight/FightSceneUI/UIFightSceneController.cs index 8db8746c407..34834f8b540 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/LevelFight/FightSceneUI/UIFightSceneController.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/LevelFight/FightSceneUI/UIFightSceneController.cs @@ -92,7 +92,7 @@ public class UIFightSceneController : UIWindow{ var go = item.Value; uint uid = item.Key; //Character character = LevelManager.Instance.CurrentLevel.CharacterManager.Get(uid); - GameUnit character = GameUnitMapper.Inst.GetUnitById(uid); + GameUnit character = GameUnitManager.instance.infightUnits.Search(uid); if (character != null) { SetBloodPos(go, character); @@ -140,7 +140,7 @@ public class UIFightSceneController : UIWindow{ async void AddBloodGo(uint uid) { - var unit = GameUnitMapper.Inst.GetUnitById(uid); + var unit = GameUnitManager.instance.infightUnits.Search(uid); if (unit != null) { if (unit.statusData.isOnVehicle) @@ -169,7 +169,7 @@ public class UIFightSceneController : UIWindow{ var go = Instantiate(prefab, GoBloods.transform); var comp = go.GetComponent(); comp.SetUid(uid); - GameUnit character = GameUnitMapper.Inst.GetUnitById(uid); + GameUnit character = GameUnitManager.instance.infightUnits.Search(uid); if (character != null) { SetBloodPos(go, character); @@ -179,7 +179,7 @@ public class UIFightSceneController : UIWindow{ void AddActionStateImg(uint uid) { - var unit = GameUnitMapper.Inst.GetUnitById(uid); + var unit = GameUnitManager.instance.infightUnits.Search(uid); if (unit == null) { return; @@ -194,7 +194,7 @@ public class UIFightSceneController : UIWindow{ return; } - if(GameUnitMapper.Inst.GetUnitById(uid).gameunitType == EGameUnitType.Character) + if(GameUnitManager.instance.infightUnits.Search(uid).gameunitType == EGameUnitType.Character) { Character character = GameUnitManager.instance.characterManager.Get(uid); if (character != null) @@ -211,7 +211,7 @@ public class UIFightSceneController : UIWindow{ void AddDamageGo(uint uid) { - var unit = GameUnitMapper.Inst.GetUnitById(uid); + var unit = GameUnitManager.instance.infightUnits.Search(uid); if (unit != null) { if (unit.statusData.isOnVehicle) @@ -301,7 +301,7 @@ public class UIFightSceneController : UIWindow{ { uint uid = damageData.owner.GetID(); //Character character = GameUnitManager.instance.characterManager.Get(uid); - GameUnit character = GameUnitMapper.Inst.GetUnitById(uid); + GameUnit character = GameUnitManager.instance.infightUnits.Search(uid); if (!m_goNumbersMap.ContainsKey(uid)) { diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/LevelFight/FightSceneUI/UIVehicleStateBar.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/LevelFight/FightSceneUI/UIVehicleStateBar.cs index 381f5e0659e..88b7a2fd0f0 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/LevelFight/FightSceneUI/UIVehicleStateBar.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/LevelFight/FightSceneUI/UIVehicleStateBar.cs @@ -30,7 +30,7 @@ public class UIVehicleStateBar : UIUnitStateBar return; } - GameUnit character = GameUnitMapper.Inst.GetUnitById(uid); + GameUnit character = GameUnitManager.instance.infightUnits.Search(uid); // else // { // character = unit as NormalVehicle; @@ -57,7 +57,7 @@ public class UIVehicleStateBar : UIUnitStateBar public override void SetUid(uint inputUid) { uid = inputUid; - NormalVehicle character = (NormalVehicle)GameUnitMapper.Inst.GetUnitById(inputUid); + NormalVehicle character = (NormalVehicle)GameUnitManager.instance.infightUnits.Search(inputUid); if (character != null) { m_totalHP = character.aliveData.maxHp + character.aliveData.maxShield; diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/Unit/GameUnitManager.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/Unit/GameUnitManager.cs index f7c54f80b5b..070953a22b9 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/Unit/GameUnitManager.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/Unit/GameUnitManager.cs @@ -217,7 +217,7 @@ namespace Gameplay.Unit prepareUnits.Remove(unit); infightUnits.Add(unit); - DebugUtil.LogG($"单位:{unit.GetID()} 已进入战斗"); + DebugUtil.LogG($"单位:{unit.GetID()} 已进入战斗序列"); } public void EnterBattle() diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/Unit/GameUnitMapper.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/Unit/GameUnitMapper.cs deleted file mode 100644 index 2e60a825daa..00000000000 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/Unit/GameUnitMapper.cs +++ /dev/null @@ -1,108 +0,0 @@ -using System; -using System.Collections.Generic; -using Framework; -namespace Gameplay.Unit -{ - public class GameUnitMapper - { - - private static GameUnitMapper _instance; - - public static GameUnitMapper Inst - { - get - { - return _instance; - } - } - - public static GameUnitMapper CreateInstance() - { - if (_instance != null) - { - DebugUtil.LogError("请勿重复创建: GameUnitMapper"); - return _instance; - } - _instance = new GameUnitMapper(); - return _instance; - } - - private readonly Dictionary _gameUnitDict; - private readonly List _unitList; - public List unitList - { - get - { - return _unitList; - } - } - - private GameUnitMapper() - { - _unitList = new List(); - _gameUnitDict = new Dictionary(); - } - - public GameUnit GetUnitById(uint uId) - { - if (_gameUnitDict.TryGetValue(uId, out var unit)) - { - return unit; - } - DebugUtil.Log("不存在的UnitId: {0}", uId); - return null; - } - - public void RemoveUnitById(uint uId) - { - if (_gameUnitDict.TryGetValue(uId, out var unit)) - { - _gameUnitDict.Remove(uId); - _unitList.Remove(unit); - } - else - { - DebugUtil.Log("不存在的UnitId: {0}", uId); - } - } - - public void Init() - { - EventManager.Instance.Register(EventManager.EventName.UnitCreate, (Action)_AddUnit); - EventManager.Instance.Register(EventManager.EventName.UnitDispose, (Action)_RemoveUnit); - } - - public void Dispose() - { - EventManager.Instance.Unregister(EventManager.EventName.UnitCreate, (Action)_AddUnit); - EventManager.Instance.Unregister(EventManager.EventName.UnitDispose, (Action)_RemoveUnit); - - _gameUnitDict.Clear(); - _unitList.Clear(); - _instance = null; - } - - private void _AddUnit(GameUnit unit) - { - if (_gameUnitDict.ContainsKey(unit.GetID())) - { - DebugUtil.LogError("重复的UnitId: {0}",unit.GetID()); - return; - } - _unitList.Add(unit); - _gameUnitDict.Add(unit.GetID(), unit); - } - - private void _RemoveUnit(uint id) - { - if (!_gameUnitDict.ContainsKey(id)) - { - DebugUtil.LogError("不存在的UnitId: {0}", id); - return; - } - _unitList.Remove(_gameUnitDict[id]); - _gameUnitDict.Remove(id); - } - - } -} diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/Unit/GameUnitMapper.cs.meta b/ProjectNLD/Assets/Code/Scripts/Gameplay/Unit/GameUnitMapper.cs.meta deleted file mode 100644 index 9d83446ec2b..00000000000 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/Unit/GameUnitMapper.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 710714b25b53475db5ad7048a3a05a39 -timeCreated: 1691740613 \ No newline at end of file diff --git a/ProjectNLD/Assets/Code/Scripts/Gameplay/Vehicle/Impl/NormalVehicle.cs b/ProjectNLD/Assets/Code/Scripts/Gameplay/Vehicle/Impl/NormalVehicle.cs index 8da2332b315..3689d8d09a8 100644 --- a/ProjectNLD/Assets/Code/Scripts/Gameplay/Vehicle/Impl/NormalVehicle.cs +++ b/ProjectNLD/Assets/Code/Scripts/Gameplay/Vehicle/Impl/NormalVehicle.cs @@ -128,10 +128,10 @@ namespace Gameplay.Vehicle.Impl // // } - var allUnits = GameUnitMapper.Inst.unitList; - for (var i = 0; i < allUnits.Count; ++i) + var allUnits = GameUnitManager.instance.infightUnits; + for (var i = 0; i < allUnits.count; ++i) { - var enemy = allUnits[i]; + var enemy = allUnits.GetByIndex(i); if (enemy == null) continue; if (!enemy.statusData.CheckCanBeTarget()) continue; if (!statusData.isChaos) diff --git a/ProjectNLD/Assets/Editor/FightDebug/FightDebugWindow.cs b/ProjectNLD/Assets/Editor/FightDebug/FightDebugWindow.cs index 72018747871..d023fb8a231 100644 --- a/ProjectNLD/Assets/Editor/FightDebug/FightDebugWindow.cs +++ b/ProjectNLD/Assets/Editor/FightDebug/FightDebugWindow.cs @@ -33,12 +33,12 @@ namespace FightDebug return; } - var units = GameUnitMapper.Inst.unitList; + var units = GameUnitManager.instance.infightUnits; _dragScrollPos = GUILayout.BeginScrollView(_dragScrollPos); GUILayout.BeginHorizontal(); - for (int i = 0; i < units.Count; i++) + for (int i = 0; i < units.count; i++) { - var unit = units[i]; + var unit = units.GetByIndex(i); GUILayout.BeginVertical(); _DisplayUnit(unit); GUILayout.EndVertical();