目前尝试自己做一个游戏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赞
你是怎么处理成只渲染相机照到的地方的?之前的方法官方好像已经废弃了。