ym88659208ym87991671
Сессия навигации – ARNavigationSession | Документация для разработчиков

Сессия навигации – ARNavigationSession

Обновлено 17 января 2023

ARNavigationSession регистрирует события сессии навигации. Представляет собой Singleton, поддерживает обращения через ARNavigationSession.Instance. Список доступных для подписки события и какие функции к ним привязаны:

OnPathCreated – путь от текущего местоположения пользователя к выбранной точке назначения построен успешно

OnPathFindingFailed – не удалось построить маршрут от текущего местоположения пользователя к выбранной точке назначения

  • OnPathFindingFailed в ScanState; вызов OnCancelCallback, поведение по умолчанию: переход на стейт выбора точки назначения
  • OnPathfindingFailedHandler в WalkToState; вызов OnPathFindingFailCallback, поведение по умолчанию: переход на стейт локализации

OnPathDeleted – текущий путь был удалён

OnTrackingLost – потеря трекинга (возникает в большинстве случаев при потере фокуса)

  • OnTrackingLostHandler в AppRouter; возврат на стейт выбора здания, а если имеется построенные путь – предложение перестроить его для продолжения маршрута

OnPointReached – точка назначения достигнута, содержит в аргументах PlanPoint – точка назначения

  • OnPointReachedHandler в WalkToState; вызов OnPointReachedCallback, поведение по умолчанию: переход на стейт достижения точки назначения.

OnProgressUpdated – обновления прогресса пути до точки назначения, первый аргумент – пройденный прогресс в процентах, второй аргумент – пройденная дистанция в метрах

  • OnProgressUpdated в WalkToState; обновление шкалы прогресса пути и кол-ва метров до точки назначения

OnCorrectVpsAngle – положение телефона удовлетворяет условиям работы VPS (запросы не отправляются при сильном наклоне камеры вверх или вниз, см. VPS)

OnVpsRequestSuccess – локализация прошла успешно

  • OnLocalized в ScanState; отображение анимации успешной локализации

OnVpsRequestFailed – локализация не удалась

  • сейчас не используется; может быть использован для сообщения пользователю о неуспешной локализации. Обратите внимание, что с текущим протоколом VPS первая отправка запроса всегда возвращается с фейлом (см. документацию к VPS)

Помимо регистрации события, ARNavigationSession отвечает за:

  • корректировку пути, если пользователь сходит с маршрута
  • достижение точки назначения, когда пользователь подходит к ней на заданное расстояние

А также позволяет получить текущую позицию пользователя через публичную функцию GetCurrentPlayerPosition():

public Vector3 GetCurrentPlayerPosition() // возвращает текущую позицию 
// пользователя согласно данным трекинга

ARNavigationSession находится на сцене Main на одноименном объекте. Также к нему прикреплен скрипт FloorNavigationProgress со следующими настраиваемыми параметрами:

float radiusToRebuild // расстояние от пути в сторону, при преодолении которого
// путь будет перестроен
float defaultPointRadiusReached // на какое расстояние к точке назначения нужно
// подойти, чтобы пусть считался завершен
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.