【分享】简单方便的UI渲染优化 - SortingGroup (支持原生,支持2.4.x,无需自定义引擎)

大神,刚拿到项目,因为我用的是3.6,可以支持吗、里面有个


是3.63有的。我尝试改为getStencilHash(0) 界面的UI会闪烁。求带

你的项目版本具体是多少啊, 如果UI模块没有改动的话,是直接可以的
还有你 getStencilHash(0) 这个是干什么的

3.6.0,想替换你这个3.6.3的接口。但是有问题

你直接用3.6.3 3.6.0好多问题

image 这个是什么意思

就是native的代码修改一般需要和creator的版本匹配,但是你也可以忽略这个试试,一般相同大版本的代码不会修改。比如 2.4.x 可以用于2.4.10、2.4.11等,3.6.x可以用于3.6.2、3.6.3等

我想问的是 lcc-ui-sorting-group-native这个是文件夹吗?没有啊,才疏学浅,这段看不懂 :stuck_out_tongue_closed_eyes:

对,是一个文件夹;2.4.11可以在项目根目录找到;3.6.3可以在native/engine目录找到。在gitee上的demo上去找对应版本

1赞

是发布安卓端生成的native目录吗?

lcc-ui-sorting-group-native 这里面是2.4.11和3.6.3通用的吗?,只有2.4.11里有这个文件夹

3.6.3的可以在native/engine目录找到

3.6.3 native/engine里没有lcc-ui-sorting-group-native

哦,这个目录前面忘记上传了,刚才上传了重新拉一下gitee

谢谢,看到啦

非常感谢你的分享。

版本:2.4.11

如果运行 Cocos Creator 并修改 Script 代码,屏幕上看不到图像。

请问如何解决。

这是什么工具

有什么办法可以解决上面的问题吗?
祝你有美好的一天。

如果你不清楚原理,lcc-ui_sorting-group文件夹里面的代码除了sorting-define.ts文件,其他最好别动

原生平台缺少cache排队后的flush操作, 可以在RenderFlow::render函数中traverseHandle调用结束之后flush一下

void RenderFlow::render(NodeProxy* scene, float deltaTime, Camera *camera)
{
// 省略 …
auto traverseHandle = scene->traverseHandle;
traverseHandle(scene, _batcher, _scene);
_batcher->flushRendererCache();
_batcher->terminateBatch();
// 省略 …
}

谢谢修正,确实缺少比较全面的测试,前面的demo好像并没有测试出这个问题