赞
踩
Unity : 2020.3.37f1
Pipeline : BRP
(另一个项目在 2021.1.xx 的 LTS 下的 URP 管线同样如此,目测:因为 UGUI 不受渲染管线切换而变化)
便于索引,记录搬砖
可以看到,下图
Canvas 的 Render Mode 在使用: Screen Space - Overlay 模式下的DC为 8

这里导致合批失败的有两个问题:
UI AABB overlap


localPosition.z != 0

DrawCall 就会增加很多

相当于一个都合批不了,要是UI复杂,有多,那么性能就渣渣了
如下图
我们修改了这些内容,即可合批:

Canvas Render Mode 调整为:Screen Space - Camera,并指定相机

然后将 UI 的 Hierarchy 层级嵌套要展平,需要同级化

Alpha Test, ZWrite On, ZTest LEqual


这个方案目前总结下来有那么一些限制:
其他项目组的一位 TA 大佬,分享了一下 UI 的 AABB Overlap 下的合批
结果他自己做了一些尝试,发现可以这么整
这种如果有 UGUI 黑箱部分的合批逻辑,都会比较好处理(比如,如果你们项目有购买 unity 引擎源码,那是可以一探究竟,甚至可以自行修改的)
然后我们没有unity引擎源码,在这种情况下,这位TA大佬都测试出来了,真的牛逼
(然后这种方式其实在 UWA UGUI 优化课程中也有讲到类似的优化,到时连接我就不方便发了,给自己看,我也贴上来吧:Unity - UGUI 优化 (NGUI vs UGUI) - 笔录 - UWA大神推荐学习篇)
因此我将这次大佬的研究成果直接记录笔记,便于后续索引,备忘
另外,这些内容纯纯是搬砖,都是基于别人的引擎(unity引擎)下使用UGUI 的一些问题
较真怎么才不属于搬砖:
那么恭喜你,终于不是搬砖了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。