为什么销毁节点后,节点依然存在

做2d就被用3.x啊

也可以考虑先执行移除rigid和collider后再destroy,

年轻2.x也是这样 碰撞之后不能改位置不能销毁都要延时一帧操作 这叫引擎特色

对的,之前2.4.4也遇到过这个问题,最后也只能延迟销毁

cocos中所有的销毁都是下一帧才生效的。没有立即销毁的方法

1赞

大佬们,又有一个问题 :sob: 为什么我label组件没有string属性

你先获取label组件,组件时组件,节点是节点。还是那句话,找视频看。。基础都不知道,就开始上手。

image 这样吗 打印出来是空的啊

你把_components那一项点开就能看见你的label组件了,然后再点开label就能看见string了

走 ,咱不搭理他

你快回答他的问题啊,他输出label为空啊

不想回答了,找个基础视频看一下就行了的微信截图_20211112151934
太新了 。

没有找到3.0的视频 所以才来问的 我才接触这个两三天 :sob:

你先要搞清楚cocos的机制啊,什么节点啊组件啊场景啊这些

creator的节点和组件的销毁都会在下一帧去执行,这样是为了避免在同一帧执行太多操作而造成不必要的发麻烦,你用this.scheduleOnce(() => { do something })在下一帧去打印这个节点看是否还是存在的,3.x我不知道还是不是这个机制,至少2.x的引擎都是这个尿性。

所以判断一个节点存不存在,不能用 if(node), 要用cc.isValid

node.parent=null
node.destroy()
node.removeFromParent()

按需选择使用哪种方式

了解下组件的生命周期:
https://mp.weixin.qq.com/s/Rfz-9IJ3rLnJkdVavPPyYQ
图片

1赞