Vectores y transform en Unity explicados

Resumen

Para programar videojuegos en Unity necesitas dominar vectores, cuaterniones y el componente transform, los pilares matemáticos que mueven, rotan y escalan cada objeto en pantalla. Si estás empezando con Unity y quieres entender cómo funciona la matemática detrás del movimiento, este repaso visual te ayuda a conectar la teoría con el código.

¿Qué guarda el componente transform en Unity?

El transform es el componente que define dónde está, cómo está orientado y qué tan grande es un objeto en la escena. Tiene tres propiedades, y todas se apoyan en estructuras matemáticas concretas.

  • Posición: un Vector3 que indica el lugar en el espacio.
  • Rotación: un Quaternion que indica hacia dónde mira el objeto.
  • Escala: un Vector3 que indica el tamaño en cada eje.

El Vector3 tiene tres componentes de tipo float (X, Y, Z). Cada componente también se llama dimensión, y son números de punto flotante que puedes manipular libremente desde código.

¿Qué es un Vector3 en Unity? Es una estructura con tres números decimales (X, Y, Z) que representa una posición, una dirección o una escala en el espacio 3D.

¿Por qué Unity usa cuaterniones para las rotaciones?

Aquí viene lo interesante. En el inspector de Unity ves la rotación con tres campos (X, Y, Z), pero en el código encuentras un Quaternion con cuatro componentes: X, Y, Z y W [2:00].

Lo que muestra el editor no es el cuaternión real, son los Euler angles, otra forma de interpretar la rotación. El problema de los Euler angles es el famoso gimbal lock, un fenómeno que bloquea ejes de rotación en ciertas orientaciones. Googléalo, es un dilema fascinante.

Desde código puedes acceder a la rotación como Euler angles y, cuando lo haces, la rotación se comporta como un Vector3 y la manipulas igual que cualquier vector.

¿Qué es la sobrecarga de operadores en C#?

A diferencia de Java, C# permite sobrecargar operadores, es decir, definir cómo se suman o multiplican clases que no son tipos primitivos. Los vectores en Unity aprovechan esto: puedes sumar dos Vector3 con un simple + o multiplicarlos por un escalar con *, sin escribir lógica adicional.

¿Cuál es la diferencia entre un vector y un escalar?

Un escalar es un número común, con una cantidad y una dirección booleana: positivo o negativo. Un vector, en cambio, combina varios números y representa dos cosas a la vez: una magnitud (su tamaño) y una dirección (hacia dónde apunta) [5:30].

En 3D esa dirección se mueve por el espacio cartesiano: arriba, abajo, derecha, izquierda, adelante, atrás. Cuando multiplicas un vector por menos uno, conserva su tamaño pero invierte la dirección.

¿Qué representa la magnitud de un vector? Es el tamaño o longitud del vector, sin importar hacia dónde apunte. Define qué tan fuerte o qué tan lejos llega esa cantidad.

¿Cómo se suman, restan y escalan los vectores visualmente?

No necesitas hacer las cuentas en papel. Lo que importa es que reconozcas qué pasa gráficamente con cada operación, porque así es como vas a pensar cuando programes movimiento, físicas o IA.

¿Cómo funciona la suma de vectores?

Si tienes un vector A y un vector B, tomas el vector B y lo colocas en la punta del vector A. Donde quede la cabeza de B, ese es el resultado.

Y ojo: un vector no depende de su origen. Puedes trasladarlo a cualquier punto del espacio y su magnitud y dirección no cambian. Por eso puedes moverlo libremente para sumarlo gráficamente.

¿Qué pasa al multiplicar un vector por un escalar?

La dirección se mantiene, pero el tamaño cambia en proporción al escalar.

  • Multiplicar por 2 duplica el tamaño del vector.
  • Multiplicar por 0.5 lo reduce al 50%.
  • Multiplicar por 0.25 lo deja en un cuarto de su tamaño original.

Esta operación es la base para controlar velocidades, fuerzas y escalas dentro de un juego.

¿Cómo se interpreta la resta de vectores?

Imagina al vector Pucca y al vector Garu, y recuerda que Pucca siempre sigue a Garu. Si restas Garu menos Pucca, obtienes un vector que apunta hacia Garu [9:10].

La resta de dos vectores te da una flecha que une ambos puntos en el plano. La dirección depende del orden: quién lleva el signo negativo determina hacia dónde apunta el resultado. Esto es clave cuando un enemigo necesita calcular la dirección hacia el jugador.

¿Qué son los vectores unitarios y por qué importan tanto?

Un vector unitario es aquel cuya magnitud siempre es uno, sin importar hacia dónde apunte. Casi todos los vectores pueden convertirse en unitarios mediante un proceso llamado normalización.

Normalizar significa encontrar el escalar correcto para que ese vector tenga tamaño uno. Unity ya trae métodos como .normalized para hacerlo automáticamente, así que no te preocupes por la fórmula.

¿Y qué vector no se puede normalizar? El vector cero. Como no tiene magnitud, tampoco tiene dirección, así que normalizarlo es un error matemático. Cualquier otro vector sí puede reducirse hasta tamaño uno.

Los vectores unitarios son fundamentales para representar direcciones puras: cuando solo te importa hacia dónde, no cuánto. Por eso si multiplicas un vector unitario por 5, obtienes un vector con la misma dirección y magnitud exactamente 5.

Cuéntame en los comentarios qué tamaño crees que tiene un vector unitario multiplicado por 5, y qué otras operaciones con vectores te gustaría ver aplicadas en código.