Guías prácticas

Empezar a usar Unity y Android XR

Lectura de 6 minutos
Luke Hopkins
Ingeniero de relaciones con desarrolladores de Android

Samsung Galaxy XR ya está aquí con la tecnología de Android XR. Esta entrada de blog forma parte de nuestra semana especial de Android XR, en la que proporcionamos recursos (entradas de blog, vídeos, código de muestra y más) diseñados para ayudarte a aprender, crear y preparar tus aplicaciones para Android XR. 

Nunca ha habido un mejor momento para empezar a desarrollar experiencias de realidad extendida. El pasado mes de diciembre, anunciamos Android XR, la nueva plataforma Android de Google basada en estándares abiertos como OpenXR y Vulkan, que hace que el desarrollo de RE sea más accesible que nunca.


Además, si se combina con las herramientas de RE de Unity, obtendrás una pila de desarrollo potente y madura. De esta forma, se pueden crear e implementar aplicaciones de realidad mixta que funcionen en varios dispositivos.

openxr_face_tracking2.webp

Tanto si ya has desarrollado para XR como si no, queremos ayudarte a dar tus primeros pasos.

En esta entrada del blog te explicaremos cómo empezar a desarrollar para Android XR y Unity. Nos centraremos en los pasos prácticos para configurar tu entorno, comprender el ecosistema de paquetes y empezar a crear.

Al final de esta entrada de blog, tendrás una buena idea de lo siguiente:

  • Ecosistema de paquetes
  • Pasos de configuración esenciales
  • Métodos de introducción
  • 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 e implementar en Android XR y otros dispositivos XR.

Si usas Unity, te beneficiarás de su ecosistema y sus herramientas de XR. Ya tiene paquetes establecidos, como XR Interaction Toolkit, OpenXR plugin, XR composition layers, XR Hands, una amplia 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 el pasado mes de noviembre, también podrás disfrutar de su rendimiento mejorado de Universal Render Pipeline (URP), una mejor compatibilidad con gráficos Vulkan y perfiles de compilación optimizados.

Aquí tienes algunos proyectos de muestra para que te hagas una idea de lo que se puede hacer:

Configuración esencial: la base de tu desarrollo

Requisitos e instalación de Unity 6

Necesitarás Unity 6 para crear tu aplicación, ya que las versiones anteriores no son compatibles con Android XR. Primero, instala Unity Hub y, después, Unity 6 con el módulo Android Build Support. 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 tus ajustes y configuraciones específicos de la plataforma. De esta forma, en lugar de tener que configurar manualmente entre 15 y 20 ajustes 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 hemos creado.

Para seleccionar tu perfil de compilación, ve a Archivo > Perfil de compilación en tu proyecto de Unity. Para ver las instrucciones completas, consulta la página del flujo de trabajo Desarrollar para Android XR.

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

buildprofiles.png

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

API de gráficos: 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 gráficos. Android XR se ha creado como una plataforma basada en Vulkan. En marzo del 2025, Google anunció que Vulkan es ahora la API de gráficos oficial de Android. Se trata de una API de gráficos moderna y de bajo nivel que ayuda a los desarrolladores a maximizar el rendimiento de las GPUs modernas y a desbloquear funciones avanzadas, como el trazado de rayos y el multihilo, para obtener imágenes de videojuegos realistas e inmersivas.

Estos estándares ofrecen la mejor compatibilidad para tus aplicaciones y reducen los problemas y los costes de portabilidad. Además, permite habilitar funciones avanzadas de Android XR, como URP Application Space Warp y renderizado foveal

Unity 6 gestiona 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. De esta forma, podrás acceder a todas las funciones avanzadas de Android XR sin necesidad de realizar ninguna configuración manual.

Para verificar los ajustes de la API de gráficos, ve a "Edit" (Editar) > "Project Settings" (Ajustes del proyecto) > "Player" (Reproductor) > "Android tab" (Pestaña Android) > "Other settings" (Otros ajustes) > "Graphics APIs" (APIs de gráficos).

appentrypoint.png

Información sobre el ecosistema de paquetes

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

Puede que parezcan lo mismo, pero espérate un momento.

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 las funciones de realidad mixta. La principal ventaja de usar el paquete Unity OpenXR: Android XR es que ofrece una API unificada para admitir dispositivos de realidad extendida.


Mientras que Android XR Extensions for Unity es el paquete de RE de Google, diseñado específicamente para desarrollar aplicaciones para dispositivos Android XR. Complementa el paquete Unity OpenXR con funciones adicionales, como los modos de mezcla del entorno, la creación de mallas de escenas, el seguimiento de imágenes y el seguimiento corporal. La contrapartida es que solo puedes desarrollar para dispositivos Android XR.


La opción que elijas dependerá de tus necesidades específicas, pero, por lo general, te recomendamos que uses Unity OpenXR: Android XR, ya que te ofrece mucha más flexibilidad en cuanto a los dispositivos con los que será compatible tu aplicación. Después, en función de los requisitos de tu aplicación, puedes añadir extensiones Android XR para Unity.

Cómo instalar paquetes

Para añadir un paquete, abre tu proyecto en Unity y selecciona "Window" (Ventana) > "Package Management" (Gestión de paquetes) > "Package Manager" (Gestor de paquetes).

Desde aquí puedes instalar estos paquetes en la pestaña "Registro de Unity":

packagemanager.png

Puedes instalar el paquete Android XR para Unity a través de GitHub. Para ello, selecciona el icono ➕, elige "Install package from git URL" (Instalar paquete desde URL de Git) y, a continuación, introduce "https://github.com/android/android-xr-unity-package.git".

packagemanager2.png

Funciones de OpenXR necesarias

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

Puedes habilitar el ajuste OpenXR para Android: Editar -> Ajustes del proyecto -> Gestión de complementos XR -> Haz clic en Android y habilita OpenXR.

xrpluginmgmt.png

A continuación, debemos habilitar la compatibilidad con Android XR. Hablaremos de otras funciones de OpenXR cuando las necesitemos. Por ahora, solo necesitamos que se habilite la compatibilidad con Android XR.

Entrada

Android XR admite la entrada de datos mediante manos, voz, seguimiento ocular, teclado y mandos. Te recomendamos que instales XR Interaction Toolkit y XR Hands, ya que contienen los mejores prefabs para empezar. Si usas estas prefabs, tendrás todo lo que necesitas para admitir manos y mandos en tu aplicación.

xrinteractiontoolkit.png

Una vez que hayas instalado XR Hands y XR Interactive, te recomiendo que importes los recursos iniciales y la demo de interacción con las manos. Después, debes habilitar los perfiles Interacción con las manos y Controlador simple de Khronos, así como activar las funciones Subsistema de seguimiento de manos y Puntería con seguimiento de manos de Meta.

Para editar estos ajustes, ve a Editar > Configuración del proyecto > Gestión de complementos de XR > OpenXR.

profiles.png

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

La forma más sencilla de añadir este prefab es importarlo desde la demo de integración de manos que hemos importado antes. Puedes encontrarlo en "Hands Integration Toolkit" > "Hand Interaction" > "Prefabs" > "XR Origin" ("Kit de herramientas de integración de manos" > "Interacción con las manos" > "Prefabs" > "XR Origin").

prefabs.png

Te recomiendo que uses este prefab en lugar de la opción "XR Origin" en tus objetos de juego, ya que utiliza XR Input Modality Manager, que cambia automáticamente entre las manos y los mandos de los usuarios. De esta forma, podrás cambiar entre las manos y los mandos con mayor facilidad.

Privacidad y permisos: generar confianza en los usuarios

Independientemente de lo que desarrolles, tendrás que obtener 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 funciones proporcionan información personal más detallada que las aplicaciones tradicionales para ordenadores o móviles, por lo que los permisos de tiempo de ejecución aseguran que los usuarios tengan control total sobre los datos que decidan compartir. Por lo tanto, para cumplir 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 crear gestos con las manos personalizados, tendrás que solicitar el permiso de seguimiento de manos (consulta la información que se incluye más abajo), ya que este paquete necesita registrar mucha información sobre las manos del usuario. Esto incluye aspectos como el seguimiento de las posturas de las articulaciones de las manos y las velocidades angulares y lineales.

Nota: Para ver una lista completa de las extensiones que requieren permisos, consulta la información del 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

Mejorar la calidad visual con capas de composición

La capa de composición es la forma recomendada de renderizar elementos de la interfaz de usuario. Permiten mostrar elementos con una calidad mucho mayor en comparación con la canalización de renderizado estándar de Unity, ya que todo se renderiza directamente en el compositor de la plataforma.

Por ejemplo, si estás mostrando texto, es más probable que el renderizado 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 nítido, los contornos serán más definidos y la experiencia será mejor en general.


Además de texto, también renderiza vídeos, imágenes y elementos de la interfaz de usuario con una calidad mucho mayor. Para ello, utiliza la compatibilidad nativa con las capas de composición del tiempo de ejecución.

Para activar las capas de composición, abre Gestor de paquetes, selecciona "Registro de Unity" y, a continuación, instala "Capas de composición de XR".

Compilar y ejecutar

Ahora que tienes instalados los paquetes de OpenXR y las funciones habilitadas, puedes crear una configuración prefabricada para el movimiento de las manos y la cabeza, así como crear tu escena e implementarla directamente en tu visor para probarla.

Próximos pasos: ampliar tus habilidades

Ahora que has configurado tu entorno de desarrollo de Android XR y conoces los conceptos clave, estos son los pasos que debes seguir para continuar tu recorrido de desarrollo de XR:

Recursos esenciales para seguir aprendiendo:

Proyectos de ejemplo que puedes consultar:

Escrito por:

Seguir leyendo