UGUI合批工具

作者: gt154 | 来源:发表于2019-10-16 13:51 被阅读0次

关于ugui合批原理和规则不再重复,网上已经有不少资料来细致讲解了,这个工具就是根据之前大牛们的无私分享而诞生的,(PS: 我当时看的是这篇文章https://gameinstitute.qq.com/community/detail/112235)在了解了原理的基础上,我尝试实现了一个简单的合批工具,提供合批信息。

工具开发以及测试环境为unity2018,本文的资源来自于Asset Store下的Simple UI & icons,只不过我将图片打了图集,prefab中Image引用换成了图集。

操作如下:
执行菜单"Tools/UI/UIAssistant"打开工具界面,然后在Hierarchy界面选中需要显示信息的prefab点击Catch即可。

效果图如下:


1.png 2.png

每个结点输出信息均为以下结构:

3.png
对应表达信息为:
HierarychyOrder Name info:(Depth/MaterialID/TextureID) checkId BatchID
其中,当此结点没有与其他结点相同信息时,checkId没有
(补充,目前结点信息扩展为HierarychyOrder Name info:(Depth/MaterialID/TextureID/Mask/Mask2dID) checkId BatchID

代码就不解析了,毕竟原理理解了,实现就不是那么困难了, 主要合批函数在UIAssistantTools类中。

此工具的优点是能提供具体且明了的信息来告知开发者不可合批的原因,如depth不同,或material等不同导致无法合批,也绘制出了每个组件的显示范围,来确保更易理解Depth的计算以及计算过程中不被透明区域坑到。

最后说说这个工具存在问题的地方:
1.当ui为3d ui时,此工具不适用
2.存在一些bug, 有时间再修复(如mask裁剪不精确可能影响depth计算)

附上源码地址:https://github.com/gtgt154/UIAssistantTools

(其中TreeNode类参考于冗余资源排查工具工具https://github.com/cantry100/YLYFindUnUsedAsset
补充说明:我在计算信息前进行了判定该结点是否在UI层,若不在则不处理,所以如果正常操作却无信息输出,请检查这方面情况,当然也可以根据自身情况修改源码把此判定注释 )

相关文章

  • UGUI合批工具

    关于ugui合批原理和规则不再重复,网上已经有不少资料来细致讲解了,这个工具就是根据之前大牛们的无私分享而诞生的,...

  • UGUI DrawCall合批细节(转)

    UGUI DrawCall合批细节(一)——合批的规则[https://www.cnblogs.com/moran...

  • UGUI合批规则概述

    合批就是把能够合并Mesh的UI合并在一起。 UI渲染层级,面板顺序就是渲染层级,从上往下 合批规则:根据UI的深...

  • UGUI合批排序规则

    这个红色的和文字和白色图片两个相交,会同时发现两个,红色首先发现跟text并不能合批。通过text计算出深度指2,...

  • UGUI合批原理笔记

    作者:@qingqing-zhao本文为作者原创,转载请注明出处:https://www.cnblogs.com/...

  • UGUI - 合批原理笔记

    本文为作者原创,转载请注明出处:https://www.cnblogs.com/zhaoqingqing/p/96...

  • UGUI合批depth计算规则一

    UGUI合批depth计算规则一: Depth是合批的元素优先级最高的。 (1)如果第一个物体depth是-1,那...

  • Unity UI资料收集

    UGUI UGUI优化:批次合并源码分析及工具UGUI内核大探究(零)UGUI源码深度剖析 基于ugui组件封装,...

  • [Unity] UGUI加粗字体小记

    参考文章:UWA:ugui 字体加粗后android真机并没有加粗而且加宽导致文字重叠 不同字体无法合批 前段时间...

  • UGUI基础 之Canvas画布

    UGUI的目录结构 UGUI包括很多UI工具,但所有的UI工具都会在Canvas(画布)下进行渲染显示。所以当新建...

网友评论

    本文标题:UGUI合批工具

    本文链接:https://www.haomeiwen.com/subject/atgymctx.html