UGUI 优化DrawCall操作记录(基于Unity2021.3.18)

UGUI中相同材质相同Shader相同贴图的UI元素可以合并DrawCall。

1.使用图集

Unity性能优化---使用SpriteAtlas创建图集进行批次优化_unity2021.3.33 spriteatlas优化-优快云博客

2.Canvas的子物体在场景树中的索引位置和不同图集不影响UI合批且UI网格没有重叠,如下图:

如上图调用了三次绘制,两个图集两个DrawCall,两个文字一个DrawCall。

注:场景树中不管UI组件是Canvas的子物体还是UI组件的子物体,都是按照从Canvas的深度优先计算depth的。

3.如果不同图集UI的mesh相交,Depth小的会打断Depth大图集的合批,被打断的Depth大的组件相同图集的会合并为一个DrawCall。注:下图中的数字代表深度

注:上述所提的深度可以在EventSystem中查看

注:depth就是graphic中的depth,

这个depth就是相对根Canvas的绝对深度。

4.相同图集UI的Mesh相交或者文字的Mesh相交不会影响UI合批,文字组件的字不一样不会影响UI的合批。

相同图集的一个mesh,文字一个mesh

6.如果文字与非文字组件Mesh相交,会打断文字的合批,若放在depth大于文字Image上还会打断图集的合批。

 

7.半屏幕的背景图单独使用一个Canvas可以避免因UI的mesh相交而打断合批。

因为UI元素不会全在背景图的网格之内,而背景图片depth又比较小,所以它会影响depth比较大的UI合批。

如果将背景图片添加Canvas组件之后

 因为不同Canvas不会进行合批计算,所以这样就避免了背景图片打断合批的操作。

上述是从Unity中实测而来,后续遇到其他还会补充 ,如有不对的地方欢迎评论告诉我。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值