执行addChild时候jsb显示sgNode is null

这里执行addchild的时候jsb报错,因为之前1.5.1不会有这种错误显示到了1.6才发现,实际运行没有影响,而且这个错误就出现在了某个数量很大的bullet上,其他相同方法代码没有出错。


这个是错误提示,显示sgNode为空

然后找到了6017行,这里_sgNode应该是渲染节点,赋值后执行sgNode.parent出错了。我试过在我代码的addChild前面加log,的确bullet不是空的是object的情况出错,用bullet.parent=这种手段也是一样的错误。

顺便一说,我也不知道什么情况会报错,不是100%报错的

很可能是节点已经被上一个场景销毁了。用 this.node.isValid 判断一下?

真的是这样的,bullet用isValid判断在出错的时候显示的是false,测试在产生200多次的时候出现了一次,几率是很低的,但是我没切换场景啊,产生子弹的预设这个过程为什么会出现这种情况,最奇怪的是对游戏运行本身没有影响

这个就要你调试看看了,应该是你有什么地方把节点销毁了,或者放了错误的节点到对象池中。

因为不是父节点被销毁,是子节点被销毁,而上面代码刚从节点池或者是预设获取到子节点。。。

我应该是想到了,是bullet自身销毁了自身,在自身被调用之前让update的开头return应该就行了