3.8在碰撞中destroy节点报错

3.7.3没问题,升级3.8后就报错


去掉两个destroy后就没问题了,代码如图

3赞

用这个方法确实不报错了,但是不理解。我用定时销毁和超出屏幕销毁都没有多这一步操作。
3.8的文档也没提到这回事。

因为是在物理系统里进行的事件回调,box2d 系统中正计算物理结果呢 ,然后使用 node.xxx 这样的属性进行同步中,你直接销毁掉节点,肯定就报错了。等待当前帧的物理计算、节点同步结束后,当前帧不再使用 node.xxx 了,就能正常销毁了。下一帧因为节点已经销毁了就不会走进物理节点同步逻辑了。

明白了,感谢指点。