cocos creator 3D 1.2.0版本添加了Mask组件的子节点无法合并drawcall

最近项目从3D的1.1.2版本换到1.2.0版本后,发现drawcall激增,排查后发现是scrollview节点里面的mask组件导致子节点没有合并批次渲染。下面是1.1.2版本和1.2.0版本下的样例场景的排查结果(使用spectorJS截取快照)

在scrollview里面添加两个节点,并对相应贴图创建自动图集:

1.1.2版本(成功合并渲染):

1.2.0版本(无法合并drawcall):

1.2.0版本(去除Mask组件后,成功合并drawcall)

以上都是相同的样例项目在不同的版本IDE下打包测试的结果。

样例测试项目:
mask_test_12.zip (2.3 MB)
mask_test_20.zip (3.0 MB)

这会在 3.0 修复,你说的 2.0 就是 1.2 把?

哦哦,我说错了,是1.1.2和1.2.0,不好意思。。。

好的,我们这边看下怎么临时处理

核心的修复在这里

https://github.com/cocos-creator/engine/pull/7497
https://github.com/cocos-creator/engine/pull/7540

大佬,我也遇到这个问题了,你弄好了吗?

尝试升级到 3.0.1

但3.0.1好像qq小游戏不适配,还有其他推荐版本吗?

那就尝试手动合并那两个 PR

大佬,PR啥意思啊?

prefab吗?

pull request,就是在引擎 github 源码上的合并请求

我手动合并了好像还是没用,按照github上的修改 [ui.ts]和 [ui-renderable.ts]还是没用,而且我发现它俩改动的地方有冲突



还请麻烦大佬看下,不胜感激

修改了就重启cocoscreaotr还是没用

修改完在开发者菜单中点击一下重新编译引擎

编译引擎后还是没解决这个问题