附上大佬文章

(10条消息) Unity优化之Drawcall_皮皮哥专注游戏开发的博客-CSDN博客_unity查看drawcall

Unity Draw call优化 - 简书 (jianshu.com)

DrawCall是CPU显卡向GPU图形处理器发送的一条数据信息,然后把信息绘制出来。

游戏中DrawCall是越少越好,对于现在时代的手机,drawcall达到300左右也还是能接受的,如果超过1000可就难受了。

DrawCall又分为UI上的和场景中的,但是他们产生数量不同的大多数原因其实就是材质id不一样,所以无法进行合批。

UI上的DrawCall通常打个图集就可以了。

场景中的物体可以进行静态合批,其原理是把静态批处理的模型合并到一个新的网格中,

只需要在Inspector面板右上角的Static勾选,条件是物体必须是同一个材质,并且物体不能移动,缺点是会产生实际的内存开销。

也可以进行动态合批,其原理是每一帧把进行批处理的模型网络进行合并,再把合并后模型数据传递给GPU,

条件是有模型顶点数量限制。

还有进行GPU Instancing合批,可以为不同的实例提供不同的旋转比例颜色等特性,不能将Skinned Mesh Renderer应用到实例化,并不是所有平台和API都支持实例化。

还有一种就是直接用代码合并,获取物体的MeshRenderer,重新生成一个material然后赋值给新物体,将旧物体隐藏。