我用代码添加了一些父节点(node2d),然后在父节点之下添加了子节点(texturebutton),然后将所有父节点归类为一个分组,之后调用分组的get_tree().call_group(“组名”, "queue_free"),按理来说应该是删除了这些父节点以及其下所有的子节点,但是当我在重新生成上述所有节点的时候,报错了,重新添加父节点时没问题,但是当我将子节点添加到父节点的时候,说该子节点已经存在于刚才删掉的父节点中,为什么会出现这种问题,我查看了queue_free()的说明,上面是这样说的:
重要: 如果你有变量指向节点,一旦节点被释放,它将不会 被分配到null。相反,它将指向一个先前被释放的实例,你应该在尝试调用其方法或访问其属性之前用@GDScript.is_instance_valid()来验证它。
这应该是意味着,该子节点并没有从内存中删除?可是为什么父节点都删除了但是子节点却没被删除?是我哪里理解错了,还是说需要进一步从内存中删除,接下来该怎么办?
重要: 如果你有变量指向节点,一旦节点被释放,它将不会 被分配到null。相反,它将指向一个先前被释放的实例,你应该在尝试调用其方法或访问其属性之前用@GDScript.is_instance_valid()来验证它。
这应该是意味着,该子节点并没有从内存中删除?可是为什么父节点都删除了但是子节点却没被删除?是我哪里理解错了,还是说需要进一步从内存中删除,接下来该怎么办?