【实用系列】2.x 循环列表+分层渲染实现。解决多个item drawcall高的问题

我猜他是初学者,他没掌握你的代码核心表达的是 “分层”。
分层渲染仅仅是改变渲染顺序以确保部分资源能在同一层级合批。
drawCall本质还是在于 Sprite Label 能否在一张合图里保证hash一致,实现合批。

等他学深入后自然就明白了 :rofl:

安卓端无效咋办 :neutral_face:

我这在安卓跑是有效的,看看是不是没符合合批条件

电脑上有效原生我打了断点,没走你写的代码 :rofl:,方便的话能加个qq吗?我截图给你或者直接把工程给你

电脑上只有5个dc

直接打包手机上有51dc

我记得2.x在安卓上的合批有问题的,你换成bitmap方式或者图片字看看,好像char模式或者其他的会合批不了,就算普通的两个label节点并排都无法合批

不是因为这个呢,char和bitmap 在手机上的dc数量是一样的

用位图字体的话电脑上还是4个,手机上45个只比系统字体少了6个dc :rofl:

你这上传一下demo,我有空看下

layeredRenderTest.zip (534.8 KB) 麻烦大佬看下了,引擎版本2.4.13

在网页跑了一下,逻辑稍微有点乱,注释掉大部分代码,只留位图字,并且不用通过Touch_End调回调,直接调用回调是没问题的,你看看文章底部的demo拿去打包看看能不能合。目前还没空搞2.x版本的AndroidStudio打包环境


这是你的项目在手机上的效果,也没合批 :rofl:。我用的2.4.13打的包


网页上是对的。

这是我之前在安卓上打的包,可以合的,试试编辑器上直接编辑label的cacheMode为BitMap(测试用,实际别这么用)

还是不行呢…有可能是引擎版本的问题。不过我用2.4.7打包打不出来,要不大佬用2.4.13的引擎打一个试试?

我用你项目原本的引擎版本2.4.7又打了几次包,手机上还是不能合批,是打包的时候还有什么设置吗?

好像是要改成bmfont才能合批,我记得2.x版本普通label在安卓上合批有问题,这是引擎层的问题。

我用Char、BitMap和位图字体都用过了,都没合批都是59dc :rofl: