📜  godot 删除所有子节点 (1)

📅  最后修改于: 2023-12-03 15:15:21.690000             🧑  作者: Mango

Godot 删除所有子节点

在 Godot 中,删除一个节点实际上是删除它的所有子节点。删除子节点可以使用 remove_child() 方法,但如果要删除所有子节点,我们可以使用以下几种方法。

方法 1:使用 while 循环遍历删除
while node.get_child_count() > 0:
    node.get_child(0).queue_free()

上述方法使用 get_child_count() 方法获取节点的子节点数,然后使用 queue_free() 方法逐个删除子节点,直到所有子节点都被删除。

方法 2:使用 get_children() 方法遍历删除
for child in node.get_children():
    child.queue_free()

上述方法使用 get_children() 方法直接获取所有子节点,并使用 queue_free() 方法逐个删除子节点,实现删除所有子节点的效果。

需要注意的是,以上两种方法都会删除子节点的所有子节点,即子树中的所有节点都会被删除。

方法 3:使用 free() 方法一次性删除所有子节点

除了逐个删除子节点,我们还可以使用 free() 方法一次性删除所有子节点。

node.free()

上述方法将立即删除节点及其所有子节点和组件。这种方法不仅适用于删除所有子节点,也可用于删除整个节点树,但需要注意此方法会删除整个节点树,慎用。

以上三种方法都可以实现删除一个节点的所有子节点,根据场景选择合适的方法即可。