新提问:什么情况下一个node会变成null?
我的出问题的代码的工作逻辑是这样的:在node A下创建一堆prefab为子节点,然后点按钮进行各种游戏过程后把这些子节点给destory掉。期间我有个大概不是很好的做法,就是cocos的destroy不是实际上是延迟进行的么,我发觉直接destroy会影响我的逻辑,就先把这些子节点给挂到另一个空节点node B上,然后在那里做destory的操作。运行下来,在游戏进行的过程中没有出现问题,重开新一局的时候,一开始创建prefab的时候依然没问题,但是当我第一次点按钮进行游戏时,这个node A和node B就突然变成null了。
这个我就不是很理解了,我很确定在我点击那个按钮后,进行的都只是数据层的计算,没有操作过UI上的东西,怎么会在重开一局游戏的时候,在这个过程中把node给变成null呢?
以下是原提问,但应该是问错了,可以忽略了
可能我的代码写的有点乱的缘故,一个node本来是有很多可爱的孩子node,正常游戏的时候也没问题,但重开一局的时候,这位伟大的父亲node就被绝后变成null了。我肉眼查了半天不知道问题在哪儿,在想如果有办法跟踪变化打印log出来,就能找到犯罪现场了。如果是普通的值的变化,那eventlistener就行,但这种node的操作,有什么办法监听打log么?
更新:
我感觉好像是我理解错误我的报错了,如果有下面这条报错的话,是不是意味着不是子节点被删除了,而是那个父节点奇怪的变成了null?我的意思是,父节点不是一个‘没有子节点的节点’,而是就一个null,艹,这又是怎么搞的。。。
Uncaught TypeError: Cannot read property ‘childrenCount’ of null