停止渲染,且保持节点active=true的最好方法是啥呢?

比如一个节点,在保持active=true的前提下,做到节点以及子节点都不渲染,没有drawcall,节约性能,最佳的方法是什么呢?

node._renderFlag &= ~cc.RenderFlow.FLAG_DONOTHING;
node._renderFlag |= cc.RenderFlow.FLAG_DONOTHING;

for (const children of node.children) {
      const renders = children.getComponentsInChildren(UIRenderer);
      if (renders && renders.length) {
        for (const render of renders) {
          render.enabled = enabled;
        }
      }
    }

enabled 表示渲染打开还是关闭

1赞

很高端的样子,我研究下~ 直接写代码飚红很难受

厉害,好使 :+1:,我多测测

这个UIRenderer是什么组件,是用户自己手动添加的么?

不知道这种满足你的需求不
透明度改为0是不渲染的,但是看不到节点了

2.x可以把opacity设置为0,dc为0,是比较常用的做法,不知道3.x行不行

渲染组件。底层的。sprite等都继承自它。

mark 一下

我也这样,不过原生不知怎么弄

好原生的找到了,可以用 node._proxy.enableVisit(visible);

给节点加个UIOpacity组件,然后把opacity设置为0就行了