Включите Geospatial API для вашего приложения Unity (AR Foundation), ориентированного на iOS.

Настройте параметры своего приложения так, чтобы оно могло использовать Geospatial API .

Предварительные условия

Прежде чем продолжить, убедитесь, что вы понимаете фундаментальные концепции AR и то, как настроить сеанс ARCore .

Дополнительную информацию о Geospatial API см. в разделе «Введение в Geospatial API».

Если вы новичок в разработке с помощью ARCore, ознакомьтесь с информацией о требованиях к программному и аппаратному обеспечению, предварительных требованиях и другой информации, относящейся к используемым вами платформам, в разделе «Начало работы».

Чтобы использовать ARCore Geospatial API, ваш проект должен поддерживать AR Foundation и расширения ARCore для AR Foundation .

Включите API ARCore

Прежде чем использовать систему визуального позиционирования (VPS) в своем приложении, вы должны сначала включить API ARCore в новом или существующем проекте Google Cloud. Эта служба отвечает за размещение, хранение и разрешение геопространственных привязок.

Предпочтительна авторизация без ключа, но также поддерживается авторизация по ключу API.

Добавьте необходимые библиотеки в ваше приложение

После авторизации вашего приложения для вызова API ARCore вы должны добавить библиотеки, чтобы включить геопространственные функции в вашем приложении.

  1. Перейдите в «Правка» > «Настройки проекта» > «Управление плагинами XR» > «Расширения ARCore» . Убедитесь, что выбрана опция «Поддержка iOS включена» .
  2. В разделе «Дополнительные функции» выберите «Геопространственные» .

Включите геопространственные возможности в конфигурации сеанса.

После включения геопространственных функций в вашем приложении включите геопространственные возможности в конфигурации сеанса AR вашего приложения, чтобы оно могло взаимодействовать с API ARCore:

  1. Убедитесь, что папка Assets проекта содержит объект сценария ARCoreExtensionsConfig . Чтобы создать его, щелкните правой кнопкой мыши на панели «Ресурсы» и выберите «Создать» > XR > «Конфигурация расширений ARCore» .
  2. Выберите объект сценария ARCoreExtensionsConfig в папке «Ресурсы» и установите для параметра «Геопространственный режим» значение «Включено» .

  3. Настройте игровой объект ARCore Extensions для использования конфигурации ARCoreExtensionsConfig . На панели «Иерархия» найдите игровой объект ARCore Extensions , который вы создали при первоначальной настройке расширений ARCore, и подключите поле ARCore Extensions Config к объекту сценария ARCoreExtensionsConfig в папке «Активы» .

Запросить пользователя разрешить использование данных устройства

Приложения, использующие ARCore Geospatial API, должны предоставить пользователю запрос на подтверждение и разрешение использования данных со своего устройства. Дополнительную информацию см. в разделе «Требования к конфиденциальности пользователей» .

Проверьте совместимость устройства

Не все устройства, поддерживающие ARCore, также поддерживают Geospatial API. Чтобы проверить устройство пользователя на совместимость, вызовите AREarthManager.IsGeospatialModeSupported() . Если это возвращает FeatureSupported.Unsupported , не пытайтесь настроить сеанс.

Запросить у пользователя разрешения на определение местоположения во время выполнения

Чтобы включить службы определения местоположения Unity в сценарии, который запускает запросы разрешений во время выполнения, выполните следующие действия:

  1. В Project Settings > iOS > Other Settings > Location Usage Description введите имя приложения, которое запрашивает разрешения.

  2. Включите службы определения местоположения Unity, чтобы инициировать запрос разрешения во время выполнения, как показано ниже:

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

    Дополнительную информацию см. в документации Unity LocationService .

Проверьте доступность геопространственных данных в текущем местоположении устройства.

Поскольку Geospatial API использует комбинацию VPS и GPS для определения геопространственной позы, API можно использовать до тех пор, пока устройство может определить свое местоположение. В районах с низкой точностью GPS, таких как закрытые помещения и плотная городская среда, API будет полагаться на покрытие VPS для создания поз с высокой точностью. Ожидается, что в типичных условиях VPS обеспечит точность позиционирования около 5 метров и точность вращения 5 градусов. Используйте AREarthManager.CheckVpsAvailability() чтобы определить, имеет ли данное местоположение покрытие VPS.

Geospatial API также можно использовать в регионах, где нет покрытия VPS. На открытом воздухе с небольшим количеством препятствий или без них GPS может быть достаточно для определения позы с высокой точностью.

Что дальше