Запуск демонстрационного проекта
В качестве тестовой локации в приложении по умолчанию установлена и настроена навигация по Дизайн-заводу Флакон. Вам доступно четыре точки интереса, соответствующие реальным местам на локации.
Запуск внутри Unity Editor
Для запуска демонстрационного проекта из коробки откройте проект AR Navigation Lite в Unity (рекомендуется версия 2021.1) и откройте сцену Main (Assets → Scenes → Main).
Для запуска внутри Unity Editor нажмите кнопку пуск в середине верхней части экрана. Приложение будет запущено и в окне Game будет отображён первый стейт – ChoosePointState.
Выберите желаемую точку назначения из списка. Приложение переключится на стейт ScanState, где вы можете просто подождать успешной локализации или нажать клавишу Tab для перехода в Free Flight Mode и клавишу E для моковой локализации. О режиме FreeFlight подробнее здесь
Для локализации по VPS используется фотография в публичном поле FakeTexture компонента FakeCamera на объекте VPS → MockData. Вы можете заменить её на любую другую из папки Assets → Images для получения других результатов локализации.
Для изменения позиции и поворота моковой локализации переместите объект LocalizationPose (расположен на сцене Main в VPS → FreeFlightSimulation) в желаемые координаты. Камера будет повёрнута вдоль оси X в локальных координатах.
После успешной локализации анимация сменится на галочку.
Произойдёт переход на WalkToState. Вы можете нажать клавишу Tab, чтобы перейти в режим симуляции передвижения и вращения камеры. Используйте мышь для поворота вокруг вертикальной оси, клавиши WASD для перемещения и Left Shift для ускорения.
Следуйте по стрелочкам к финальному пину. Если вы сойдёте с маршрута на определённой расстояние, будет предпринята попытка перестроить его от вашего нового местоположения. При неудаче (например, если вы зашли в недоступную зону) вы будете возвращены на ScanState для уточнения вашего местоположения.
При близком подходе к нему маршрут будет считаться завершённым и приложение перейдёт на ArrivalState
Во время прохождения по маршруту вы можете также использовать клавишу T или для симуляции потери трекинга. При этом будет произведён переход на RouteRestoreState
При отказе от восстановления маршрута вы будете возвращены на ChoosePointState. При восстановлении маршрута будет произведён переход на стейт локализации с последующим построением пути к выбранной ранее точке и переходом на WalkToState.
Запуск на устройстве
Для запуска на реальном устройстве (iOS или Android) необходима поддержка ARKit или ARCore соответственно. Для билда приложения нажмите File → Build Settings и в открывшемся окне нажмите Build and run.
При первом запуске приложения на устройстве будет произведена проверка на наличие поддержки ARKit / ARCore, после чего необходимо будет предоставить разрешения на использование камеры и служб геолокации (GPS).
В остальном поведение приложения на устройстве аналогично работе внутри Unity Editor, за исключением использования моковых данных.
Для локализации на ScanState непосредственно на локации достаточно медленно провести телефоном слева направо, как будто снимаете панораму. Старайтесь держать камеру параллельно полу – при сильном наклоне вверх или вниз будет показано соответствующее сообщение.
Вы можете протестировать приложения на устройстве и без непосредственного выезда на локацию: путём наведения камеры телефона на фотографию, например, на экране монитора. Однако чтобы локализация прошла успешно в этом случае, требуются некоторые дополнительные настройки:
- После запуска приложения и выдачи разрешений (на стейте ChoosePointState) произведите долгое нажатие (тап) в свободной части экрана. Откроется скрытое меню настроек:
- Установите галочку в тоггле Autofocus, уберите её в тоггле SendGPS и нажмите Close.
- Выберите точку назначения из списка и в ScanState наведите камеру устройства на фотографию. Держите телефон ровно, не допускайте появления сообщения о неверном угле, перемещать из стороны в сторону в этом случае не требуется. Если всё сделано правильно, через несколько секунд анимация сменится на галочку, что означает успешную локализацию.
Ваши перемещения по локации будут отслеживаться системой трекинга автоматически. Вы можете свернуть и развернуть приложение для проверки реакции на потерю трекинга – если на этот момент в приложении будет построенный путь, будет предложено восстановить его; в противном случае будет произведён возврат на ChoosePointState.