UGUI原理学习笔记

重要概念

  • Canvas Batch:Canvas下的UI元素最终都会被Batch到同一个Mesh中,而在Batch前,会根据这些UI元素的材质(通常就是Atlas)以及渲染顺序进行重排,在不改变渲染结果的前提下,尽可能将相同材质的UI元素合并在同一个SubMesh中,从而把DrawCall降到最低。Batch的结果会被缓存复用,知道这个Canvas被标记为dirty.
  • Unity官方的重要提示:当给定Canvas上的任何可绘制UI元素发生更改时,Canvas必须重新执行合批过程。此过程重新分析Canvas上的每个可绘制UI元素,不管它是否被修改。注意:更改是指影响UI元素外观的任何变动,包括修改sprite、transform的Position 和Scale、文本网格的text等等。
  • Canvas嵌套:Canvas可以嵌套使用,一个子Canvas下dirty的子物体不会触发父Canvas的rebuild

网格重建因素

UI顶点属性变化会引发网格更新

  • 修改Image、Text的Color属性会改变顶点的颜色UIVertex.color
  • 修改RectTransform的Size、Anchor、Pivot等,会改变顶点的位置UIVertex.position
  • 注意:在UGUI中颜色的变化是通过修改顶点色实现的,避免生成了新的DrawCall
  • 注意:UIVertex.position记录的是本地空间下的坐标
    网格重建流程图:
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值