Habilita la API de Geospatial para tu app de Unity (AR Foundation) orientada a iOS

Configura la app para que pueda usar la API de Geospatial.

Requisitos previos

Asegúrate de comprender los conceptos fundamentales de la RA y cómo configurar una sesión de ARCore antes de continuar.

Consulta la Introducción a la API de Geospatial para obtener más información sobre la API de Geospatial.

Si es la primera vez que desarrollas con ARCore, consulta Cómo comenzar para obtener información sobre los requisitos de software y hardware, los requisitos previos y otra información específica de las plataformas que usas.

Para usar la API de ARCore Geospatial, tu proyecto debe admitir AR Foundation y las Extensiones de ARCore para AR Foundation.

Habilita la API de ARCore

Antes de usar el sistema de posicionamiento visual (VPS) en tu app, primero debes habilitar la API de ARCore en un proyecto de Google Cloud nuevo o existente. Este servicio es responsable de alojar, almacenar y resolver las anclas geoespaciales.

Se prefiere la autorización sin llave, pero también se admite la autorización de la clave de API.

Agrega las bibliotecas necesarias a tu app

Después de autorizar a tu app para que llame a la API de ARCore, debes agregar bibliotecas para habilitar las funciones geoespaciales en tu app.

  1. Navega a Edit > Project Settings > XR Plug-In Management > ARCore Extensions. Asegúrate de que esté seleccionada la opción Compatibilidad con iOS habilitada.
  2. En Funciones opcionales, selecciona Geoespacial.

Habilita las funciones geoespaciales en la configuración de la sesión

Una vez que se haya habilitado la funcionalidad Geospatial en tu app, habilita las funciones de Geospatial en la configuración de la sesión de RA de tu app para que pueda comunicarse con la API de ARCore:

  1. Asegúrate de que la carpeta Recursos del proyecto contenga un objeto ARCoreExtensionsConfig programable. Para crear uno, haz clic con el botón derecho en el panel Assets y selecciona Create > XR > ARCore Extensions Config.
  2. Selecciona el objeto de secuencia de comandos ARCoreExtensionsConfig en la carpeta Assets y establece el modo geoespacial en Habilitado.

  3. Configura el objeto de juego ARCore Extensions para usar la configuración de ARCoreExtensionsConfig. En el panel Hierarchy, busca el objeto de juego ARCore Extensions que creaste cuando configuraste ARCore Extensions por primera vez y conecta el campo ARCore Extensions Config al objeto ARCoreExtensionsConfig que se puede escribir en secuencias de comandos en la carpeta Assets.

Solicita al usuario que permita el uso de los datos del dispositivo

Las apps que usan la API de ARCore Geospatial deben presentarle al usuario un mensaje para que acepte y permita el uso de los datos de su dispositivo. Consulta los requisitos de privacidad del usuario para obtener más información.

Cómo verificar la compatibilidad del dispositivo

No todos los dispositivos que admiten ARCore también admiten la API de Geospatial. Para verificar la compatibilidad del dispositivo del usuario, llama a AREarthManager.IsGeospatialModeSupported(). Si se muestra FeatureSupported.Unsupported, no intentes configurar la sesión.

Solicita permisos de ubicación al usuario durante el tiempo de ejecución

Para habilitar los servicios de ubicación de Unity en una secuencia de comandos que active las solicitudes de permisos del tiempo de ejecución, haz lo siguiente:

  1. En Project Settings > iOS > Other Settings > Location Usage Description, ingresa el nombre de la app que solicita permisos.

  2. Habilita los servicios de ubicación de Unity para activar la solicitud de permiso de tiempo de ejecución de la siguiente manera:

    public void OnEnable()
    {
        Input.location.Start();
    }
    
    public void OnDisable()
    {
        Input.location.Stop();
    }
    

    Consulta la documentación de LocationService de Unity para obtener más información.

Cómo verificar la disponibilidad geoespacial en la ubicación actual del dispositivo

Debido a que la API de Geospatial usa una combinación de VPS y GPS para determinar una pose geoespacial, la API se puede usar siempre y cuando el dispositivo pueda determinar su ubicación. En áreas con baja precisión del GPS, como espacios interiores y entornos urbanos densos, la API se basará en la cobertura de VPS para generar poses de alta precisión. En condiciones típicas, se espera que el VPS proporcione una precisión posicional de aproximadamente 5 metros y una precisión de rotación de 5 grados. Usa AREarthManager.CheckVpsAvailability() para determinar si una ubicación determinada tiene cobertura de VPS.

La API de Geospatial también se puede usar en áreas que no tienen cobertura de VPS. En entornos exteriores con pocas obstrucciones en el techo o sin ellas, es posible que el GPS sea suficiente para generar una pose con alta precisión.

¿Qué sigue?