节点销毁时明显卡顿

目前尝试自己做一个游戏demo,但是在某个道具节点销毁,也就是执行到this.node.destroy()这一语句的时候,游戏明显的暂停了一、两秒,请教一下这是怎么回事?

console.time 和 console.timeend 打印一下看看耗时
看问题在哪

就是执行到this.node.destroy()这一语句前后,特别耗时

这个道具节点大吗

不大,没有子节点

console下this.node.destroy看看

打印出来是undefined

console.log(this.node.destroy)

你有向日葵吗

ƒ destroy() {
cc.Object.prototype.destroy.call(this) && (this.active = false);
}
打印出来这个,向日葵没用过

我打印出来也是,试试换成this.node.active = false(隐藏节点,如果不卡,那就看看node关于destory的相关说明吧)

我试过将active变成false,也会有卡顿

看下内存呢,会不会是东西太多的卡顿

可能是因为同时存在大量的这种节点,我查看一下,谢谢帮忙

没事没事,不客气

遇到这种情况可以试试对象池 不用销毁对象 不用的时候放进池子里 用的时候再拿出来用就行

感谢回复,已经解决了,是因为同时存在了大量的同种结点

之前问题解决了,但是后来又出现了同样的问题,最后终于知道问题产生的原因,是因为这个节点放在游戏地图的层级下,然后每次节点删除后又会重新渲染一遍地图,现在改成只渲染相机照到的地方,就不会出现卡顿的情况了

1赞

你是怎么处理成只渲染相机照到的地方的?之前的方法官方好像已经废弃了。