Introducción
Si bien podríamos crear nuestra propia estructura de datos para representar vectores en el plano y el espacio en Unity, dentro de sus librerías ya vienen definidas dos herramientas para este propósito. Se trata de las clases Vector2 y Vector3, que consisten en vectores de dos y tres dimensiones respectivamente, además cuentan con un conjunto de funciones que nos permite resolver todas las operaciones algebráicas entre vectores, como el producto punto, producto cruz, cálculos de norma, etc.
En el siguiente vídeo puedes ver una introducción a los vectores para el plano y el espacio en Unity.
Declaración del tipo de dato Vector2 y Vector3
Comencemos viendo cómo declarar estos datos en un Script para poder utilizarlos.
La declaración de la variable consiste en indicar la visibilidad, luego el tipo de dato, el nombre de referencia y el valor inicial, la visibilidad podemos omitirla y por defecto tendrá visibilidad privada, el valor inicial también se puede omitir e iniciarlo más adelante, en este caso los vectores tendrán el valor por defecto que será el vector nulo de ambos espacios. En la figura 1 vemos algunos ejemplos de cómo declarar los vectores en los Scripts.
Cuando asignemos el Script a un GameObject, en el inspector podremos ver algunas de las variables dependiendo de la visibilidad que se haya indicado. La visibilidad pública permite que la variable aparezca en el inspector y la privada puede aparecer si se añade el modificador SerializeField, como se observa en la figura 1 constrastada con la figura 2.
Operaciones de suma y resta entre vectores en el plano y en el espacio en Unity
A continuación vamos a declarar un conjunto de vectores y hacer las operaciones básicas de suma y resta entre vectores en el plano y en el espacio.
Al sumar o restar dos vectores en R2 el resultado será un tercer vector que también pertenecerá al espacio R2, lo mismo para los vectores en R3. Por lo tanto vamos a definir dos vectores de cada clase que serán los sumandos y luego dos vectores más del mismo tipo en donde almacenaremos los resultados de la suma y resta.
Los sumandos serán los vectores A y B, la suma la almacenaremos en el vector C y la resta en el vector D.
En la figura 3 vemos en ejemplo en el que se declaran los vectores y luego en el método Start se ingresan los valores para estos vectores y luego se resuelven las operaciones de suma y resta.
El método Start es un mensaje de Unity, por lo tanto para que Unity lo ejecute automáticamente debemos asignar al Script a un GameObject de la escena que esté habilitado y luego entrar en el modo juego (botón Play de la figura 4).
En la figura 5 vemos el resultado de la ejecución del Script de la figura 3.