3.8.3 update 大量子节点频繁改变顺序 setSiblingIndex 会打断合批
怎么解决
单独的对象池来管这个 ,直接让这些对象来自同一个StaticVBAccessor,也可以定制一下shader的格式,系统会为这一些分配到一起的
改后 sprite 合批是解决了
spine 合批还是会被打断
this.node 下500个合批spine, 到后面draw call 慢慢涨到500
update(){
this.node.children.sort((a, b)=>{
return b.position.y - a.position.y;
});
this.node._updateSiblingIndex();
}
Spine用的也是一样,
Spine的mesh都不小,又500个
Spine分配时就很容易,已分割buffer了,
又重排位置,只会更乱,大大增加打断概率
你可以尝试回收节点renderdata,
排完位置再复用节点,让引擎重新顺序分配renderdata
- 增大BATCHER2D buffer,上面贴子
- renderdata回收,复用让引擎重新顺序分配
1赞
1.增大BATCHER2D buffe 这个不行,节点顺序一直乱序还是会涨
- renderdata回收,复用让引擎重新顺序分配 解决了问题
感谢大佬支持