Guías prácticas

Cómo comenzar a usar Unity y Android XR

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

Samsung Galaxy XR ya está aquí, con tecnología de Android XR. Esta entrada de blog forma parte de nuestra Semana 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 para XR. En diciembre pasado, anunciamos Android XR, la nueva plataforma de Android de Google basada en 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, obtienes una pila de desarrollo potente y madura. Esto permite crear e implementar apps de 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 mostraremos 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 esenciales
  • 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 XR.

Cuando usas Unity, te beneficias de su ecosistema y herramientas de XR maduros. Ya tiene paquetes establecidos, como XR Interaction Toolkit, el complemento de OpenXR, capas de composición de XR, XR Hands, 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 muestra para que te hagas una idea de lo que se puede 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 Compatibilidad de compilación de 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 de proyectos que almacenan tu configuración y parámetros 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 que creamos.

Para seleccionar tu perfil de compilación, selecciona File > Build Profile en tu proyecto de Unity. Si quieres ver las instrucciones completas, consulta la página del flujo de trabajo 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 aspectos.

buildprofiles.png

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

API de Graphics: por qué es importante Vulkan

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 Graphics. Android XR se creó como una plataforma que prioriza Vulkan. En marzo de 2025, Google anunció que Vulkan ahora es la API de Graphics oficial para Android. Es una API de Graphics moderna y de bajo nivel que ayuda a los desarrolladores a maximizar el rendimiento de las GPU 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 los costos de la portabilidad. Además, permite habilitar funciones avanzadas de Android XR, como URP Application Space Warp y el renderizado foveado

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

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

appentrypoint.png

Comprende el ecosistema de paquetes

Hay dos paquetes diferentes que puedes usar para Android XR en Unity. Uno es usar las extensiones de Android XR para Unity, y el otro es usar el paquete Unity OpenXR: Android XR.

Puede que suenen igual, 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 permite la integración de AR Foundation para funciones de realidad mixta. El principal beneficio de usar el paquete Unity OpenXR: Android XR es que ofrece una API unificada para admitir dispositivos de XR.


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


La elección dependerá de tus necesidades específicas, pero, por lo 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 el proyecto abierto en Unity, selecciona "Window" > "Package Management" > "Package Manager".

Desde allí, puedes instalar estos paquetes desde la pestaña "Unity Registry":

packagemanager.png

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

packagemanager2.png

Funciones obligatorias de OpenXR

Ahora que tienes instalados los paquetes que necesitas, habilitemos algunas funciones principales para que nuestro proyecto funcione.

Puedes habilitar la 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 ahora, solo necesitamos que esté habilitada la compatibilidad con Android XR.

Entrada

Android XR admite entradas para manos, voz, seguimiento ocular, teclado y controles. Te recomendamos que instales XR Interaction Toolkit y XR Hands, ya que contienen los mejores objetos prefabricados para comenzar. Si usas estos objetos prefabricados, tendrás todo lo que necesitas para admitir manos y controles en tu app.

xrinteractiontoolkit.png

Una vez que se instalen XR Hands y XR Interactive Toolkit, te recomiendo que importes los recursos iniciales y la demostración de interacción con las manos. Luego, debes habilitar los perfiles de Hand Interaction y Khronos Simple Controller, y activar las funciones Hand Tracking Subsystem y Meta Hand Tracking Aim.

Para editar esta configuración, ve a "Edit" > "Project Settings" > "XR Plug-in Management" > "OpenXR".

profiles.png

También recomendamos el objeto prefabricado de Unity, XR Origin, que representa la posición y la orientación del usuario en el espacio de XR. Contiene el equipo de 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 objeto prefabricado 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 objeto prefabricado en lugar de la opción "XR Origin" en tus objetos de juego, ya que usa el administrador de modalidad de entrada de XR, que cambia automáticamente entre las manos y los controles de los usuarios. Esto te dará el mejor éxito para cambiar entre manos y controles.

Privacidad y permisos: generar confianza del usuario

Independientemente de lo 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 ocular, el seguimiento facial y el seguimiento 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 seguimiento de manos (consulta más abajo), ya que este paquete necesita hacer un seguimiento de mucha información sobre las manos del usuario. Esto incluye elementos como 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 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 la canalización 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. Mientras que, 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 del texto, también renderiza videos, imágenes y elementos de la IU con una calidad mucho mayor. Para ello, utiliza la compatibilidad nativa con las capas del compositor del tiempo de ejecución.

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

Compilación y ejecución

Ahora que tienes instalados los paquetes de OpenXR y las funciones habilitadas, una configuración prefabricada para el movimiento de la mano y la cabeza, puedes compilar tu escena y realizar la implementación directamente en tu visor para realizar pruebas.

Próximos pasos: expande 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 muestra para explorar:

Escrito por:

Seguir leyendo