Seguimiento de manos y ojos
El Eye Tracking es una tecnología avanzada que permite detectar hacia dónde está mirando el usuario en tiempo real. Esta funcionalidad, disponible en Meta Quest Pro, puede utilizarse para mejorar la interacción, optimizar el rendimiento de la aplicación o simplemente analizar el comportamiento visual del usuario. En este apartado, aprenderás a integrar y visualizar eye tracking en Unity.
Para ayudarte a implementar esta funcionalidad, te continuación tienes un video tutorial donde aprenderás a configurar el sistema de seguimiento ocular paso a paso.
Video: Eye Tracking en Unity con Meta Quest Pro
Añadir el XR Camera Rig
Añade el Building Blog CameraRig a tu escena.
Configura la cámara central:
Cambia el clear flags a Solid Color.
Color: Negro.
Crear Ojos
Crea una Sphere dentro de TrackingSpace y renómbrala como EyeInteractor.
Ajusta su Scale a 0.15 en todos los ejes.
Crea una carpeta para Prefabs y arrastra el EyeInteractor dentro.
Configurar Ojo
Crea dentro de TrackingSpace un empty object y cambiale el nombre a ReferenceFrame.
Modifica su Z en 1.
-
Añade el componente OVREyeGaze.
-
Establece el Confidence Threshold en 0.
Asigna en Reference Frame el empty ReferenceFrame que hemos creado.
-
Selecciona el Tracking Mode como: Tracking Space.
Actualiza el prefab.
-


Crear Scripts
Crea una carpeta para los Scripts
EyeInteractable.cs: Este script se adjunta a objetos en la escena para hacerlos "interactuables" por la mirada. Cuando un rayo de seguimiento ocular lo detecta, cambia su material para indicar que está siendo mirado y puede disparar un evento de Unity para activar otras acciones.
EyeTrackingRay.cs: Este script, típicamente adjunto a la cámara, dispara un rayo invisible desde el punto de vista del jugador. Su función es detectar si el rayo golpea un objeto con el script EyeInteractable.cs. Visualmente, dibuja una línea que cambia de color cuando detecta un objeto interactuable. Cuando un objeto EyeInteractable es golpeado, este script notifica al objeto que está siendo mirado.
Enlace de descarga: Scripts
Asignar Scripts
Asignamos el script de EyeTrackingRay al EyeInteractor.
Configuramos el width del ray a 0.01.
Desactivamos Use World Space.
Le asignamos en Materials el Default-Line que viene por defecto en Unity.
Luego más abajo cambiamos Ray Distance a 5 y Layers To Include a Everything.
Por último actualiza de nuevo el prefab.
Duplicar Ojo
- Duplica el GameObject y renómbralos uno para el ojo derecho y el otro para el izquierdo.
- En Eye selecciona Left para el derecho y Right para el izquierdo.

Crear Eye Interactables
Crea una Cube y renómbralo como EyeInteractable.
Actualiza su Position a (0,1,1) y su Scale a (0.1,0.1,0.1).
Luego añadele el script EyeInteractable.
En el Rigidbody marca Is Kinematic para que no se caiga.
Crea dos materiales del color que quieras y asígnalos a On Hover Active y On Hover Inactive.
Arrástralo a la carpeta de Prefabs.

Prueba de Interacción
En este caso, la configuración inicial de los scripts es suficiente para observar el comportamiento básico. Simplemente ejecutaremos la escena y comprobaremos cómo el rayo visual reacciona con los objetos EyeInteractable que hemos configurado.
Cuando el rayo detecte un objeto con el script EyeInteractable.cs:
- El color del rayo cambiará de rayColorDefaultState a rayColorHoverState.
- El material del objeto EyeInteractable cambiará de OnHoverInactiveMaterial a OnHoverActiveMaterial.
- Además, cualquier evento configurado en OnObjectHover para ese EyeInteractable se disparará.
Por defecto, el sistema ya está listo para su uso. Si deseamos personalizar la apariencia del rayo o la respuesta del objeto, podemos modificar los parámetros de los scripts en el Inspector de Unity. A continuación, se muestra una demostración visual del funcionamiento en el video.