testmeshpro合批_UGUI合批原理笔记

本文介绍了Unity的UGUI合批机制,通过分析源码展示了合批的影响因素,并提供了避免合批的建议,包括减少动态文本、降低界面更新频率、统一图集、避免遮挡和旋转、减少透明Image的使用、慎用Mask、优化UI层次结构和Material等,以提升游戏性能。
摘要由CSDN通过智能技术生成

可以通过Frame debugger查看每个drawcall绘制了哪些东西

本文测试环境:unity2018.2.9f1,基于Unity Editor (PC平台)

网格更新机制

Cavans.SendWillRenderCanvas

m_LayoutRebuildQueue

m_GraphicRebuildQueue

Canvas.BuildBatch 更新所有DrawCall

WaitingForJob 子线程网格合并

PutGeometryJobFence

BatchRendere.Flush UI如果开多线程渲染,BatChRender.Flush会增高,主线程在等待子线程的结果时Flush会等待。

哪些因素的改变会引起合批

从源码中可以看到,这些数据的改变会引起合批

源码地址: UI / UnityEngine.UI / UI / Core / Utility / VertexHelper.cs

private List m_Positions = ListPool.Get();//顶点位置的拷贝或指定新顶点位置的数组

private List m_Colors = ListPool.Get();//颜色

private List m_Uv0S = ListPool.Get();//基本纹理坐标

private List m_Uv1S = ListPool.Get();//第二套纹理坐标

private List m_Uv2S = ListPool.Get();//第三套纹理坐标

private List m_Uv3S = ListPool.Get();private List m_Normals = ListPool.Get();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值