Saltar a contenido

Buscador de unidades

Retomándolo donde lo dejamos en la lección anterior, quiero profundizar un poco en las unidades.

Y es que cuando vamos a añadir un nodo en el gráfico, aparecen muchas categorías, cada una con infinidad de unidades disponibles:

Empecemos centrándonos en las primeras de la lista, pues hacen referencia a los componentes del GameObject donde se ha asignado la Script Machine. En nuestro caso el cubo tiene un Transform, los Mesh Filter y Render, un Box Collider y el propio Script Machine. Si queremos interactuar con cualquiera de ellos tenemos muchas unidades disponibles. Pero encima de todo también tenemos una categoría llamada Game Object, cuyas unidades nos permiten acceder y gestionar los GameObjects de la escena.

Volviendo al principio encontramos otras categorías generales, colecciones, controles, eventos, lógica, matemáticas, etc.

Existen más de 20.000 unidades y eso es porque deben cubrir cualquier acción programable. Es imposible saberlas todas de memoria y la idea es buscarlas y utilizarlas a medida que surja la necesidad. La gracia del Visual Scripting, es que tenemos a nuestra disposición un potente buscador de unidades y eso facilita la tarea a la hora de investigar.

Por ejemplo, vamos a suponer que después de rotar un grado el eje Y en cada Update, queremos desplazar el cubo hacia arriba.

Si movemos el cubo hacia arriba en la escena podemos observar que se modifica el eje Y del vector de posición en el componente Transform. Si abrimos el buscador de unidades y buscamos transform translate, encontraremos todas las unidades relacionadas con la traslación, la transformación que permite cambiar la posición:

Fijaros que aparece la misma unidad repetidas veces, esto se conoce como sobrecarga de un método, y sucede cuando tenemos diferentes formas de realizar una acción. En nuestro caso vamos a centrarnos en Transform: Translate (X,Y,Z) que simplemente toma un vector 3D con el valor a incrementar en cada eje:

Notaréis que por defecto esta unidad se muestra transparente, eso es porque no le llega ningún flujo de código y se considera inactiva.

Podemos unir el flujo de salida en la rotación con la entrada de flujo de la traslación y activarla:

Esto se traduciría como: en cada Update ejecutar una rotación y luego una traslación. Vamos a indicar un número muy pequeño al eje Y, por ejemplo 0.1 y veamos el resultado:

Como véis el cubo empieza a flotar hasta que desaparece. En cada fotograma estamos sumando 0.01 unidades del mundo a su posición Y (recordemos que una unidad del mundo equivale a los cuadrados del escenario), eso son 0.60 unidades de altura cada segundo suponiendo que el videojuego funciona a 60 FPS.

En definitiva el flujo es la corriente vital del script gráfico y fluye a través de las unidades activándolas para ejecutar sus acciones.


Última edición: 14 de Abril de 2021