Cuando estamos desarrollando nuestro juego, a veces podemos querer ejecutar una misma acción para una serie de elementos u objetos.
Por ejemplo, se ha acabado un nível y queremos eliminar todos los objetos enemigos, o bien hemos acabado un puzzle y queremos ocultar todos los botones, etc.
Para hacer esto podemos utilizar el sistema de grupos de Godot.
Para ello primero tenemos que ir a cada objeto y añadirle el grupo, para ello iremos al dock donde esta el inspector y nos moveremos a la pestaña de Node, donde encontraremos la subpestaña de Groups
Allí simplemente ponemos un nombre en el espacio destinado a ello y le damos al botón Add.
Poniendo el mismo nombre a todos los objetos que queramos haremos que pertenezcan al mismo grupo.
Luego, desde un script, en GDScript podemos invocar a este grupo y ejecutar la misma función para todos ellos. Veamos un ejemplo
get_tree().call_group("_g_response", "queue_free")
En este ejemplo, hemos invocado de todo el árbol de la escena (get_tree), hemos indicado con la función call_group que queremos ejecutar una función para todos los miembros de un grupo. El primer parametro corresponde con el nombre del grupo, y el segundo con la función que queremos ejecutar.
Podriamos pasarle parametros a la función que queremos ejecutar, pasandolos en la función call_group como parametros extra.
En nuestro ejemplo, estamos llamando a la función queue_free que eliminará los objetos, pero podriamos llamar a la función hide para ocultarlos o show para mostrarlos por ejemplo.
Si los objetos que están en el grupo no tienen la función simplemente los salta en la ejecución y no hace nada con ellos.
Esta función es muy útil para poder ejecutar funciones sobre grupos de elementos.