Commit Graph

3 Commits

Author SHA1 Message Date
SepComet 4250e48e22 修复 GameStateBattle -> GameStateShop/LevelUp 时的敌人异常残留问题
用一个 _isStopped 布尔门替代 id 追踪:

- OnReset 开头置 _isStopped = true
- OnInit 置 _isStopped = false
- OnShowEntitySuccess:只要 _isStopped 为真且是 Enemy 组,立即 HideEntity
- SpawnEnemyAsync await 恢复后也补一道 _isStopped 检查(若 await 拿到了 enemy 且已停战,直接 hide 不注册)——双保险

为什么这样对:停战窗口(Shop/LevelUp)期间本就不该有任何敌人,所以"停战期间出生的敌人一律 hide"在语义上完全正确,且不受 await 同步抽空、id 复用、加载时序任何影响。
2026-06-26 13:53:36 +08:00
SepComet 000984c676 refactor(EnemyManager): 性能优化与并发安全修复
- EnemyRegistry: 移除List冗余存储, Register/Remove从O(n)→O(1)
- 增加PruneInvalidEntries显式清理接口, 消除TryGet副作用
- Remove增加不存在告警, 防重复减成负数
- 增加CTS取消飞行中的异步生成, 关卡切换时取消+重建
- ClearEnemies先快照再遍历, 防Hide回调修改集合抛异常
- entityId去掉取模复用, 直接自增保证唯一
- Enemy EntityGroup调优: Capacity→10000, ReleaseInterval→30, ExpireTime→120
2026-06-18 17:06:10 +08:00
SepComet 921193f469 从 EnemyManager 里拆分出敌人的注册/管理/查询功能 2026-06-18 15:33:36 +08:00