UGUI性能优化之drawcall
在unity中,每次CPU准备数据并通知GPU的过程就称之为一个DrawCall。具体过程就是:设置颜色-->绘图方式-->顶点坐标-->绘制-->结束,所以在绘制过程中,如果能在一次DrawCall完成所有绘制就会大大提高运行效率,进而达到优化的目的。
drawcall不是越少越好,如果ui很多,但是drawcall很少,那就是占用很多显存宽带,也会导致发热
一般都是处理应该合并但是没有合并的ui
Drawcall优化必须先了解一下drawcall怎么生成,才好优化
Drawcall问题其实可以说同一个图集的图形网格能否合并的问题(ps:字体其实也是图集)
1.资源适当冗余可以减少drawcall
例如:战斗界面用到一个公用图集的设置按钮,如果我把这个设置按钮复制一份到战斗图集里面,这样子战斗界面能优化一次drawcall,对内存和包体影响不大
2.图集整理
注意:一张图集最好不要超过2048,不然会分成两张图集
3.一些复杂的ui适当加canvas
例如:战斗界面和小地图都在一个canvas里面,这是这两个界面会进行合并,这个小地图如果有些特殊东西导致战斗界面部分无法合并可以试着加个canvas,而且小地图重建比较多,加个canvas也是比较稳的
正常来说canvas会增加drawcall,不过有时候遇到复杂界面,导致无法合并,加个canvas可以减少drawcall
4.屏蔽没必要的raycast也是减小性能消耗
5.空的image和透明的image(有自带sprite调颜色透明)都改掉换成EmptyRaycast
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)