用了一个星期手撸的俯视角射击游戏
2025-04-19 13:44:36 # 成果展示

这是一个俯视角射击游戏,玩家掌控超级士兵不断的杀戮并存活下去吧!

视频展示

难点技术实现

  • 丧尸的群智能算法实现以及性能优化
  • 射击检测的优化
  • Animation Rigging纠正动画实现垂直方向转动步
  • 优化对象池的查询速度

丧尸的群智能算法

使用Boid算法并在其基础上进行优化实现了避障和索敌功能,并使用了计算着色器GPU上并行计算优化了性能调度。为了进一步优化性能,使用了Unity的Job System

优化前
Notgate
200只丧尸120帧左右
优化后
数量差不多情况下高达200帧
Notgate

射击检测的优化

使用射线代替传统的碰撞检测,虽然需要自己计算碰撞的时间和具体碰撞的对象相关逻辑,但很好了避免了子弹出现子弹碰撞检测失败的问题,并配合粒子系统实现了子弹轨道视觉优化

实现垂直方向转动

在该游戏中与传统的俯视角割草游戏不同的地方在于玩家操作多了一个维度,玩家可以控制步枪垂直方向转动,射击爬行丧尸或者较近的丧尸。
实现思路:使用Animation Rigging以枪支作为主体,与传统的将枪绑在手上作为子物体不同。然后使用脚本控制枪支模拟晃动增加真实感。

优化对象池的查询速度

为对象池的每一个对象增加了一个hashCode的属性,然后在对象池中使用了字典以制作一个伪哈希表,大大提高了对象池列表的查询速度。

框架UML

以下类图均为chatgpt转换为plantuml然后生成
player的大致类图
Notgate
zomble的大致类图
Notgate