Симуляция работы навигации внутри Unity Editor
По умолчанию для локализации внутри Unity Editor вместо изображения с камеры отправляется заготовленная фотография. Фотография для отправки устанавливается в компоненте FakeCamera на объекте VPS → MockData в сцене Main

Вы можете заменить фотографию в свойстве FakeTexture, перетащив ее в соответствующее поле. Тестовые фотографии можно найти в папке Assets → Images.
Вы также можете использовать свои фотографии: они должны быть не размытыми и иметь разрешение 540 на 960, рекомендуемый формат: png или jpeg (jpg). Дл я теста на собственных фотографиях необходимо положить их в папку Assets и в окне Inspector для каждой установить тип “Sprite (2D and UI)” и галочку Read/Write Enabled, и поместить в значение свойства FakeTexture.

Вы можете протестировать работу приложения без билда приложения на устройство, внутри Unity Editor с помощью компонента FreeFlightSimulation. FreeFlightSimulation находится в сцене Main, на одноименном объекте в дочерних объектах VPS.


Отличительные особенности режима:
- для перехода в Free flight нажмите клавишу ToggleFreeFlightMode (определена в VPSLocalisationService, по умолчанию Tab);
- при переходе в Free flight VPS будет выключен;
- при переходе в Free flight будет загружен и включен canvas IsFreeFlightPrefab, сообщающий о нахождение в этом режиме. При необходимости вы можете заменить его на собственный или отключить полностью, сделав поле IsFreeFlightPrefab пустым;
- при нажатии SimulateLocalizationButton (по умолчанию E) будет произведена локализация в позицию дочернего объекта FreeFlightSimalution LocalizationPose;
- вы можете вращать камеру движением курсора; по умолчанию курсор блокируется при переходе в Free flight, но вы можете изменить это поведение в поле LockCursor в FreeFlightSimalution. Также в этом компоненте вы можете настроить чувствительность мыши и максимальный угол наклона;
- вы можете перемещать камеру по сцене используя кнопки W (вперед), A (влево), S (назад), D (вправо) и Left Shift для ускорения. Скорость и множитель при ускорении можно настроить в FreeFlightSimalution;
- при попытке запуска VPS при включенном режиме Free flight VPS не будет запущен, но через LocalizationDelay (по умолчанию 3) секунд будет отправлено событие об успешной локализации в текущей позиции;
- для выхода из Free flight повторно нажмите клавишу ToggleFreeFlightMode (определена в VPSLocalisationService, по умолчанию Tab). Обратите внимание, что при выходе из режима трекинг будет сброшен, а для запуска VPS в стандартном режиме вам потребуется вызвать StartVPS.

Во время симуляции передвижения и вращения камеры приложение реагирует на происходящее как при реальном тестировании на устройстве:
- при движении по маршруту будет заполняться шкала прогресс бара и уменьшаться количество оставшихся до точки назначения метров;
- при отводе камеры от навигационной линии по бокам экрана будут появляться гайдинги;
- при отклонении от маршрута на определенное расстояние он будет перестроен;
- при достижении точки назначения вызовется соответствующее события и подписанные на него действия.
Также обратите внимание, что если при движении по маршруту вы зайдете в недостижимую зону (например, при проходе через стену), и приложение не сможет построить путь между вашей текущей позицией и точкой назначения, будет сгенерировано событие ARNavigationSession OnPathFindingFailed. Поскольку в FreeFlightMode локализация выполняется моково в текущем местоположении камеры, для перестроения и продолжения прохождения по маршруту вам необходимо выйти из недостижимой зоны.