前情提要:
仅个人拙见,有搬运成分。个人在独游项目中使用,写一篇博客记录一下。
技术概要:
群体寻路插件Agent Navigation+GPUInstance动画(URP)+unity自带的碰撞实现
先说结论:
性能表现:面向对象编程,1000个丧尸单位,动画独立控制(但是不能混合),1660ti显卡,稳定100帧左右
掉帧高概率是因为自己写的代码gc有点频繁,或者log插件有点多(初期暂时没考虑优化)
性能瓶颈:
渲染试了一下,10000个单位也能跑30帧。目测性能瓶颈在寻路和大量对象的内存访问。
优化方案:
可以对视野外对象进行lod处理,(其实关不关动画都无所谓,渲染不是性能瓶颈,就是把碰撞和寻路可以关掉或者化简)
也可以使用DOTS面向数据(但是这种不太考虑,大项目会出点问题,虽然寻路是基于dots写的,但是正常编码还是面向对象吧)