Comenzando con Visual Scripting

Como todo en Godot, priorizamos una buena experiencia en lugar de copiar o integrar soluciones de terceros, las que pueden no encajar con el modo de trabajo. Esto nos permite escribir nuestra propia versión de cómo creemos que esta característica funcionará mejor con el motor.

En Godot, un Visual Script se integra perfectamente con los scripts normales en la pestaña Editor

../../../_images/visual_script1.png

De hecho, Visual Scripting se integra tan bien en Godot que es difícil de creer que se haya agregado sólo en la versión 3.0. Esto se debe a que, cuando se edita, el resto de los paneles y docks de Godot actúan como una paleta desde la que se puede arrastrar y soltar todo tipo de información al área de trabajo del script:

../../../_images/visual_script2.png

Creando un Script

La creación de scripts funciona igual que en otros lenguajes de scripts: Selecciona cualquier nodo de la escena y pulsa el botón "Nuevo Script" en la esquina superior derecha del panel de Árbol de Escenas:

../../../_images/visual_script3.png

Una vez abierto, se debe seleccionar el tipo de script "Visual Script" de la lista desplegable. La extensión del script debe ser ".vs" (¡para Visual Script!).

../../../_images/visual_script4.png

Finalmente, se abrirá el Editor de Script, permitiendo iniciar la edición del visual script:

../../../_images/visual_script5.png

Añadiendo una función

A diferencia de otras implementaciones de Visual Scripting, Visual Scripting en Godot se basa en gran medida en funciones. Esto sucede porque utiliza la misma interfaz para comunicarse con el motor que otros motores de scripting. En Godot, la interfaz de scripting es universal y todas las implementaciones se ajustan a ella.

Una función es un área de trabajo individual con nodos conectados.

Un solo script puede contener muchas funciones, cada una de las cuales tendrá su propia área de trabajo, lo que permite una mayor organización.

Hay tres maneras principales de añadir funciones en un script:

Sobreescribendo una función virtual

La mayoría de nodos y otros tipos de objetos en Godot contienen funciones virtuales. Estas son funciones que será llamado(Ejecutará su código) cuando algo sucede y puede ser consultado en la referencia. Funciones Virtuales son listados cuando se presiona el icono "Override" en el panel de miembros:

../../../_images/visual_script6.png

En el siguiente ejemplo, se ejecutará una función cuando el nodo es cargado y agregado a la escena en ejecución. Para esto, el método virtual _ready() será sobrescrito:

../../../_images/visual_script7.png

Finalmente, aparece un área de trabajo para esta función, mostrando la sobreescritura:

../../../_images/visual_script8.png

Como algunas funciones esperan que se retorna un valor, tambien se puede añadir un nodo de retorno donde se supone que dicho valor es proveido:

../../../_images/visual_script9.png

Conectando una señal (signal) a una función

Nodos de un árbol emiten señales cuando algo sucede. Godot usa señales para todo tipo de cosas. Un ejemplo típico sería un botón que emite una señal "pulsado" cuando se pulsa realmente.

Para ello, un nodo debe de ser selecionado y el Nodo Tab abierto. Esto permite inspeccionar las señales. Una vez visualizado, conectar la señal "presionado":

../../../_images/visual_script10.png

Esto permite abrir la ventana de coneción. En esta ventana, Debes selecionar el nodo en cual la señal se conectará, y la función que recibirá la señal:

../../../_images/visual_script11.png

Si esto se hace bien, se creará una nueva función en nuestro script y se le conectará automáticamente una señal:

../../../_images/visual_script12.png

Creando una función manualmente

La última forma de crear funciones es hacerlo manualmente. En general, esto no es tan común a menos que realmente lo necesitas. Las funciones personalizadas funcionan cuando otro script (o el mismo) las llama manualmente. El principal caso de uso para esto es separar una función en varias más manejables y reutilizar su código visual.

Para crear una función manualmente, pulsa el botón grande "Más", y se creará la nueva función con un nombre por defecto:

../../../_images/visual_script13.png

Esto agregará una nueva función, la cual puede ser renombrada haciendo doble clic sobre su nombre:

../../../_images/visual_script14.png

Para editar los "argumentos" que esta función puede obtener (los valores que le pasa cuando llama a esta función), simplemente haz clic en el nodo Función y comprueba el inspector:

../../../_images/visual_script15.png

Más sobre esto se explicará más adelante en este documento.