En Unity, los Gizmos son herramientas visuales que permiten a los desarrolladores visualizar y manipular elementos en la escena de manera interactiva. Estos elementos pueden ser desde objetos 3D hasta componentes de física, y suelen ser utilizados para depurar y ajustar la lógica de juego. En este artículo, exploraremos qué son los Gizmos, cómo se utilizan y algunos ejemplos de cómo pueden ser útiles en el desarrollo de juegos y aplicaciones en Unity.
¿Qué son los Gizmos?
Los Gizmos son objetos visuales que se renderizan en la escena de Unity, pero no son parte del juego en sí mismo. Son herramientas de depuración y ajuste que permiten a los desarrolladores visualizar y manipular elementos de la escena de manera interactiva. Los Gizmos pueden ser utilizados para mostrar información sobre la posición, rotación y escala de objetos, así como para visualizar componentes de física, como colisionadores y rigidbodies.
¿Cómo usar los Gizmos?
Para usar los Gizmos en Unity, tenemos que usar una función integrada en nuestro código. Importante que la clase en la que queramos poner los gizmos herede de MonoBehaviour. Vamos a usar la función: OnDrawGizmos()
Ahora que tenemos la función, vamos a acceder a la librería usando Gizmos. y luego colocar la función necesaria. Por ejemplo. usando Gizmos.color vamos a poder cambiar todos los gizmos a partir de esta línea de código al color que queramos. Veamos un ejemplo de código donde dibujamos un cubo y una esfera al lado.
void OnDrawGizmos()
{
Gizmos.color = Color.red;
Gizmos.DrawCube(Vector3.one, Vector3.zero);
Gizmos.color = Color.yellow;
Gizmos.DrawWireSphere(Vector3.zero, 1);
}

Importante aclarar, los Gizmos no se dibujan en la cámara final, son solo ayudas dentro de nuestra escena.

¿Para qué usar Gizmos?
Puede ser que te parezca que no tiene usos realmente, pero te prometo que te facilitará la vida, como en el siguiente ejemplo.
Quiero que nuestro jugador mire a donde apunto en la cámara, y requiere un calculo de Raycast que puede ser difícil de seguir. Si no funciona finalmente el cálculo, lo más probable es que no sepamos por qué. En estos casos, facilita la vida tener un Gizmos para poder ver una visual de qué está haciendo el Raycast.
void OnDrawGizmos()
{
Gizmos.color = Color.blue;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
Gizmos.DrawRay(ray);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 1000, groundLayer))
{
Gizmos.DrawWireSphere(hit.point, 1);
}
}

Conclusión
En resumen, los Gizmos son herramientas visuales poderosas en Unity que permiten a los desarrolladores visualizar y manipular elementos en la escena de manera interactiva. Con los Gizmos, los desarrolladores pueden depurar y ajustar la lógica de juego, lo que puede ayudar a mejorar la calidad y la estabilidad del juego. Espero que esta guía te haya sido útil para entender mejor los Gizmos en Unity.
¡Si tienes alguna pregunta o necesitas más ayuda, no dudes en preguntar!¿Querés crear tus propios juegos?
Aprendé a programar videojuegos desde cero con nuestros cursos en Unity. Más de 2,100 estudiantes ya empezaron su camino.
Ver cursos gratuitos

