You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity C# 顶视角射击游戏累计销毁20个敌人后停止生成问题

排查方向
  • 计数逻辑错误(最高概率)
    你当前仅在敌人生成的SpawnObject协程中执行了GameController.EnemyCount++,但敌人死亡回池的Die方法中没有对应的GameController.EnemyCount--操作。敌人生成的判断条件为GameController.EnemyCount < spawnSettings[0].maxObjects,如果你的spawnSettings[0].maxObjects刚好配置为20,计数会一路累加到20后触发上限,永远无法满足生成条件。而分数增长逻辑是直接在Die方法中修改ScoreController.scoreValue,和该计数无关,因此分数可以正常增长。
    你可以直接在生成逻辑的判断前加日志Debug.Log($"当前存活计数:{GameController.EnemyCount},生成上限:{spawnSettings[0].maxObjects}")验证该问题。

  • 对象池属性未重置
    如果确认计数逻辑没问题,检查你对象池的SpawnObject、ReturnObject方法是否正确重置敌人实例的状态:
    敌人回池时如果没有把health重置为初始最大值,下次从对象池取出激活时,health还是小于等于0的状态,会立刻调用Die方法回池,表现为敌人没有生成就消失。

  • 对象池容量不足
    检查你的enemyPool的最大容量配置是否为20,如果对象池满了且没有配置自动扩容逻辑,调用SpawnObject不会生成新的敌人实例,也会出现无敌人生成的情况。

  • 生成点位/逻辑异常
    检查敌人生成点的坐标是否合法,是否存在生成在地下、地图外的情况,敌人出生后如果触发了掉落销毁逻辑会直接回池,也会看不到敌人。同时检查你代码中未贴出的Spawn()方法是否异常修改了spawningObject状态标记,导致生成逻辑错乱。

内容的提问来源于stack exchange,提问作者capncromch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 09:12:01