Instructivos

Comienza a usar Unity y Android XR

Lectura de 6 min
Luke Hopkins
Ingeniero de Relaciones con Desarrolladores, Android

Ya está disponible el Samsung Galaxy XR, con tecnología de Android XR. Esta entrada de blog forma parte de nuestra Semana de Destacados de Android XR, en la que proporcionamos recursos (entradas de blog, videos, código de muestra y mucho más) diseñados para ayudarte a aprender, compilar y preparar tus apps para Android XR. 

Nunca hubo un mejor momento para comenzar a desarrollar experiencias de XR. En diciembre pasado, anunciamos Android XR, la nueva plataforma de Android de Google creada con estándares abiertos, como OpenXR y Vulkan, que hace que el desarrollo de XR sea más accesible que nunca.


Cuando se combina con las herramientas de XR existentes de Unity, se obtiene una pila de desarrollo potente y madura. Esto permite crear e implementar apps para XR que funcionan en varios dispositivos.

openxr_face_tracking2.webp

No importa si ya desarrollaste para XR o no, queremos ayudarte a comenzar.

En este blog, te explicaremos cómo comenzar a desarrollar para Android XR y Unity. Nos enfocaremos en los pasos prácticos para configurar tu entorno, comprender el ecosistema de paquetes y comenzar a compilar.

Al final de este blog, comprenderás lo siguiente:

  • El ecosistema de paquetes
  • Pasos de configuración básicos
  • Métodos de entrada
  • Privacidad y permisos
  • Capas de composición

Unity para el desarrollo de Android XR

Puedes elegir Unity por su compatibilidad multiplataforma, que te permite compilar una vez y realizar la implementación en Android XR y otros dispositivos de RE.

Cuando usas Unity, te beneficias de su ecosistema y herramientas de RE consolidados. Ya cuenta con paquetes establecidos, como XR Interaction Toolkit, plugin de OpenXR, capas de composición de XR, manos de XR, una extensa tienda de recursos llena de componentes y plantillas listos para XR, y herramientas de simulación y prueba de XR. Además, desde que se lanzó Unity 6 en noviembre pasado, también te beneficiarás de su rendimiento mejorado de la canalización universal de renderizaciones (URP), una mejor compatibilidad con gráficos de Vulkan y perfiles de compilación mejorados.

Estos son algunos proyectos de ejemplo para que te hagas una idea de lo que puedes hacer:

Configuración esencial: tu base de desarrollo

Requisitos e instalación de Unity 6

Necesitarás Unity 6 para crear tu app, ya que las versiones anteriores no admiten Android XR. Primero, instala Unity Hub y, luego, Unity 6 con el módulo de compatibilidad con compilación para Android. Para ello, sigue estos pasos.

unity6.png

Perfiles de compilación de Android XR: simplificación de la configuración

Los perfiles de compilación de Unity son recursos del proyecto que almacenan tu configuración y ajustes específicos de la plataforma. Por lo tanto, en lugar de tener que configurar manualmente entre 15 y 20 parámetros diferentes en varios menús, puedes usar un perfil de compilación para hacerlo automáticamente.
Puedes crear tus propios perfiles de compilación, pero, por ahora, te recomendamos que uses el perfil de compilación de Android XR dedicado que creamos.

Para seleccionar tu perfil de compilación, elige File > Build Profile en tu proyecto de Unity. Si quieres ver las instrucciones completas, consulta la página del flujo de trabajo Cómo desarrollar para Android XR.

Si realizas algún cambio, puedes crear un nuevo perfil de compilación para compartirlo con tu equipo. De esta manera, te aseguras de que la experiencia de compilación sea coherente en todos los casos.

buildprofiles.png

Después de completar estos pasos, puedes compilar y ejecutar tu APK para dispositivos Android XR.

API de gráficos: por qué Vulkan es importante

Una vez que hayas configurado tu proyecto de Unity con un perfil de compilación de Android XR, te recomendamos que te asegures de que Vulkan esté configurado como tu API de gráficos. Android XR se creó como una plataforma que prioriza Vulkan. En marzo de 2025, Google anunció que Vulkan es ahora la API de gráficos oficial para Android. Es una API de gráficos moderna y de bajo nivel que ayuda a los desarrolladores a maximizar el rendimiento de las GPUs modernas y desbloquea funciones avanzadas, como el trazado de rayos y el subprocesamiento múltiple, para obtener imágenes de juegos realistas y envolventes.

Estos estándares proporcionan la mejor compatibilidad para tus aplicaciones existentes y facilitan los problemas y costos de la portabilidad. Además, permite habilitar funciones avanzadas de Android XR, como URP Application Space Warprenderización foveal

Unity 6 controla Vulkan automáticamente, por lo que, cuando uses el perfil de compilación de Android XR, Unity configurará Vulkan como tu API de gráficos. Esto garantiza que tengas acceso a todas las funciones avanzadas de Android XR sin necesidad de realizar ninguna configuración manual.

Para verificar la configuración de la API de gráficos, ve a "Edit" > "Project Settings" > "Player" > "Android tab" > "Other settings" > "Graphics APIs".

appentrypoint.png

Información sobre el ecosistema de paquetes

Existen dos paquetes diferentes que puedes usar para Android XR en Unity. Una es con las extensiones de Android XR para Unity y la otra es con el paquete de Unity OpenXR: Android XR.

Puede que parezcan lo mismo, pero ten paciencia.

El paquete Unity OpenXR: Android XR es el paquete oficial de Unity para la compatibilidad con Android XR. Proporciona la mayoría de las funciones de Android XR, disponibles a través de los estándares de OpenXR. También habilita la integración de AR Foundation para las funciones de realidad mixta. El principal beneficio de usar el paquete Unity OpenXR: Android XR es que ofrece una API unificada para admitir dispositivos XR.


Mientras que las extensiones de Android XR para Unity son el paquete de XR de Google, diseñado específicamente para desarrollar apps para dispositivos Android XR. Complementa el paquete Unity OpenXR con funciones adicionales, como modos de combinación del entorno, mallado de escenas, seguimiento de imágenes y seguimiento corporal. La desventaja es que solo puedes desarrollar para dispositivos Android XR.


La opción que elijas dependerá de tus necesidades específicas, pero, en general, recomendamos usar Unity OpenXR: Android XR, ya que te brinda mucha más flexibilidad para los dispositivos con los que será compatible tu app. Luego, según los requisitos de tu aplicación, puedes agregar extensiones de Android XR para Unity.

Cómo instalar paquetes

Para agregar un paquete nuevo, con tu proyecto abierto en Unity, selecciona “Window” > “Package Management” > “Package Manager”.

Desde aquí, puedes instalar estos paquetes desde la pestaña “Unity Registry”:

packagemanager.png

Para instalar el paquete de Android XR para Unity a través de GitHub, selecciona el ícono de ➕, elige "Install package from git URL" y, luego, ingresa "https://github.com/android/android-xr-unity-package.git".

packagemanager2.png

Funciones de OpenXR requeridas

Ahora que ya instalaste los paquetes que necesitas, habilitemos algunas funciones principales para que nuestro proyecto funcione.

Puedes habilitar el parámetro de configuración de OpenXR para Android: "Edit" -> "Project Settings" -> "XR Plugin Management" -> Haz clic en Android y habilita OpenXR

xrpluginmgmt.png

A continuación, debemos habilitar la compatibilidad con "Android XR support". Cubriremos otras funciones de OpenXR a medida que las necesitemos. Por el momento, solo necesitamos que se habilite la compatibilidad con Android XR.

Entrada

Android XR admite la entrada de manos, voz, seguimiento de ojos, teclado y controles. Te recomendamos que instales XR Interaction Toolkit y XR Hands, ya que contienen los mejores elementos prefabricados para comenzar. Con estos prefabs, tendrás todo lo que necesitas para admitir las manos y los controladores en tu app.

xrinteractiontoolkit.png

Una vez que se instalen XR Hands y XR Interactive Toolkit, te recomiendo que importes los Starter Assets y la Hands Interaction Demo. Luego, debes habilitar los perfiles Hand Interaction y Khronos Simple Controller, y activar las funciones Hand Tracking Subsystem y Meta Hand Tracking Aim.

Para editar estos parámetros de configuración, ve a "Edit" > "Project Settings" > "XR Plug-in Management" > "OpenXR".

profiles.png

También recomendamos el prefab de Unity, XR Origin, que representa la posición y la orientación del usuario en el espacio de XR. Contiene el soporte de la cámara y los componentes de seguimiento necesarios para renderizar tu experiencia de XR desde el punto de vista correcto.

La forma más sencilla de agregar este prefab es importarlo desde la demostración de integración de manos que importamos anteriormente, que se puede encontrar aquí "Hands Integration Toolkit" > "Hand Interaction" > "Prefabs" > "XR Origin".

prefabs.png

Te recomiendo que uses este prefab en lugar de la opción "XR Origin" en tus objetos del juego, ya que usa el XR Input Modality Manager, que cambia automáticamente entre las manos y los controles del usuario. Esto te permitirá cambiar entre las manos y los controles con mayor éxito.

Privacidad y permisos: cómo generar confianza en los usuarios

Cualquier cosa que compiles, deberás capturar los permisos de tiempo de ejecución de los usuarios. Esto se debe a que la comprensión de la escena, el seguimiento de ojos, el seguimiento facial y el monitoreo de manos proporcionan acceso a datos que pueden ser más sensibles para el usuario.

Estas capacidades proporcionan información personal más detallada que las apps tradicionales para computadoras o dispositivos móviles, por lo que los permisos de tiempo de ejecución garantizan que los usuarios tengan control total sobre los datos que eligen compartir. Por lo tanto, para cumplir con las políticas de seguridad y privacidad de Android, Android XR tiene permisos para cada una de estas funciones.

Por ejemplo, si usas el paquete XR Hands para gestos personalizados con las manos, deberás solicitar el permiso de monitoreo de manos (consulta a continuación), ya que este paquete necesita hacer un seguimiento de mucha información sobre las manos del usuario. Esto incluye el seguimiento de las poses de las articulaciones de las manos y las velocidades angulares y lineales.

Nota: Para obtener una lista completa de las extensiones que requieren permisos, consulta la información en el sitio web para desarrolladores de XR.

const string k_Permission = "android.permission.HAND_TRACKING";

#if UNITY_ANDROID
void Start()
{
    if (!Permission.HasUserAuthorizedPermission(k_Permission))
    {
        var callbacks = new PermissionCallbacks();
        callbacks.PermissionDenied += OnPermissionDenied;
        callbacks.PermissionGranted += OnPermissionGranted;
        
        Permission.RequestUserPermission(k_Permission, callbacks);
    }
}

void OnPermissionDenied(string permission)
{
    // handle denied permission
}


void OnPermissionGranted(string permission)
{
    // handle granted permission
}

#endif // UNITY_ANDROID

Mejora de la calidad visual con capas de composición

Una capa de composición es la forma recomendada de renderizar elementos de la IU. Permiten mostrar elementos con una calidad mucho mayor en comparación con el canal de renderización estándar de Unity, ya que todo se renderiza directamente en el compositor de la plataforma.

Por ejemplo, si muestras texto, es más probable que la renderización estándar de Unity tenga texto borroso, bordes suaves y artefactos visuales. En cambio, con las capas de composición, el texto será más claro, los contornos serán más nítidos y la experiencia será mejor en general.


Además de texto, también renderiza videos, imágenes y elementos de la IU con una calidad mucho mayor. Esto se logra utilizando la compatibilidad nativa con las capas del compositor del tiempo de ejecución.

Para activar las capas de composición, abre Package Manager, selecciona "Unity Register" y, luego, instala "XR Composition Layers".

Compilación y ejecución

Ahora que tienes instalados los paquetes de OpenXR y habilitadas las funciones, puedes crear una configuración de prefabricado para el movimiento de las manos y la cabeza, y, luego, compilar tu escena e implementarla directamente en los auriculares para realizar pruebas.

Próximos pasos: Amplía tus habilidades

Ahora que configuraste tu entorno de desarrollo de Android XR y comprendes los conceptos clave, estos son los próximos pasos para continuar tu recorrido de desarrollo de XR:

Recursos esenciales para el aprendizaje continuo:

Proyectos de ejemplo para explorar:

Escrito por:

Seguir leyendo