彻底搞懂UGUI合批计算

UGUI drawcall合并-CSDN博客

Unity3D UGUI系列之合批_unity ui合批-CSDN博客

只有出现在相机的UI才会被Batches

根据测试 这个Canvas有一个网格出现在相机,那这个canvas所有的UI都会算入Batches

合批规则  计算深度=>按照materialID  textureID 按照Hierarchy 最后根据排名的 材质和纹理进行合批

计算Depth

i.不渲染,则Depth = -1

ii.要渲染,下面没有其他UI元素与其相交,则Depth = 0

iii.如果CurrentUI要渲染,下面只有一个UI元素(LowerUI)与其

相交

(1)且CurrentUI与LowerUI可以合批(材质和贴图完全相同),则CurrentUI.Depth = LowerUI.Depth;

(2)如果两者不能合批,CurrentUI.Depth= LowerUI.Depth + 1

iv.如果CurrentUI要渲染,下面有n个元素与其相交,则按照步骤iii,分别计算出n个Depth(Depth_1、Depth_2、Depth_3…),然后CurrentUI.Depth取其最大值,即CurrentUI.Depth = max(Depth_1, Depth_2, Depth_3,…)

bottomUI判断

A是B的bottomUI需要满足:(单条只是必要条件,1、2、3

合起来才是充分条件)

B的mesh构成的矩形和A的mesh构成的矩形有相交,注意不是RectTransform的矩形相交,这点需要认真理解一下,

下面给出一组案列帮助大家理解。

A.siblingIndex < B.siblingIndex (即在Hierachy里A在B之上)

如果B有多个UI满足1、2条规则,则B的bottomUI应取siblingIndex差值的绝对值最小的那个(有点绕哈,

depth的案例有这种情况)

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值