如何控制屏幕外的不渲染?

version = 2.3.2

本来想使用mask的,发现使用了之后依然没用,好奇怪。我界面上有几千个能量豆,我不能去一直遍历吧? 所以想着怎么能把屏幕外的不渲染了! 各位有啥思路吗? @jare @panda @zhefeng.zhang

屏幕外本来就不会渲染吧,你应该做的是适配,如果想用mask的话不应该是加在canvas上面

监听 position-change ,判断出屏幕了 active false

监听 position-change ,判断出屏幕了opacity = 0

这个不合适吧,几千个能量点,计算量太大了

这个计算量有点大

屏幕外的不是本来就不渲染吗,你是想要不运算吧?

早就改了,现在屏幕外的也会渲染。

如果觉得计算量大,可以做一个计时器,不用时时判断位置,每隔N秒检查一次,每次检测M个点。

Canvas加Mask不行吗?我都这么干

从性能方面来讲,设置opacity也比设置active要好,只是设置opacity不会主动触发脚本里的onDisEnable/onEnable函数了

我 记得以前屏幕外是不渲染的啊。。 为什么现在 渲染了呢。。 有没有懂哥

目前是渲染的啊

1赞

要改的话,只能自己修改渲染命令的提交了

其实引擎是把裁剪工作交给GPU了,而不是CPU去处理了。理论上来说,应该性能提升了才对。:joy:

不过提交过多的无效渲染命令,确实也挺浪费的

节点分帧处理试试吧

计算节点AABB和屏幕AABB是否相交,计算量不大的。AABB,轴对其包围盒。