ym88659208ym87991671
Запуск с собственной локацией | Документация для разработчиков

Запуск с собственной локацией

Обновлено 28 февраля 2023

Исходные данные

Для замены тестовой локации на вашу необходимо получить от naviar:

  • LocationId – строка с id вашей локации
  • Occluder – 3д модель стен вашей локации (формат fbx или obj)

Настройка проекта

Установка адреса сервера

Откройте проект в Unity и перейдите в сцену Main (находится в Assets → Scenes).

На сцене выберите объект VPS и в компоненте VPSLocalizationService заменить значение поля LocationIds[0] на выданный LocationId.

Настройка области навигации

Положить модель в любую удобную для вас папку в проекте. Для сохранения установленной иерархии можете использовать папку Assets → Prefabs → Occluder.

На сцене Main найдите объект Occluder. Удалите из его дочерних объектов example occluder (по умолчанию называется “FlaconOccluder”) и отключите объект Preffered area, чтобы остался только FloorPlane.

Перетащите вашу модель из папки на сцену и сделайте дочерним к объекту Occluder. Не меняйте позицию, поворот и масштаб вашей модели или его родителя. В Inspector для вашей модели возле галочки Static нажмите на треугольник для раскрытия выпадающего списка и нажмите NavigationStatic. На вопрос об изменении этого параметра для дочерних объектов отвечаем согласием.

Убедитесь, что FloorPlane покрывает всю поверхность пола вашего occluder и находится на приемлемой высоте. Если эта не так, измените масштаб FloorPlane по X и Z, а также позицию по Y.

В верхнем меню Unity нажмите Window → AI → Navigation. В открывшемся окне перейдите на вкладку Bake и нажмите Bake. На сцене вы сможете увидеть, как изменились области навигации: по областям, закрашенным синим, ходить можно, по серым – нельзя. Если изменения не произошли, убедитесь, что вы правильно расположили FloorPlane относительно модели и установили галочку NavigationStatic. Убедитесь, что синяя область покрывает все нужные вам проходы. Если в узких местах синяя область не проходит, попробуйте уменьшить значение Agent Radius на вкладке Bake в AI → Navigation и нажать Bake повторно.

Опционально: вы можете указать области, по которым ходить предпочтительнее, чем по остальным (например, по центру дороги). Для этого включите объект Preffered area и расставьте дочерние объекты таким образом, чтобы они покрывали предпочтительные для проходов области. Вы можете удалять объекты нажатием Del или дублировать нажатием Ctrl+D. После размещения не забудьте перепечь navmesh повторным нажатием на кнопку Bake в Window → AI → Navigation.

Настройка точек интереса

Точки интереса представляют собой GameObject-ы и находятся на сцене Main в дочерних объектах Navigation → DatabasePoints. При выборе той или иной точки маршрут будет строиться до её координат. Вы можете изменять координаты точки меняя её Position в компоненте Transform. Обратите внимание, что точки должны лежать на FloorPlane (иметь такую же координату Y) для корректного построения маршрута к ним.

Также на каждой точке должен быть компонент PlanPoint – он отвечает за отображение точки в интерфейсе приложения и содержит следующие публичные поля:

string PointID // уникальный идентификатор, одновременно является названием точки;
// автоматически копируется в имя объекта на сцене
Texture2D Icon // иконка точки для отображения в интерфейсе ChoosePointState

Вы можете удалять существующие точки со сцены, а также добавлять новые. Для простоты добавления новой точки рекомендуется дублировать существующую, а после настроить ее параметры: координаты, идентификатор и иконку.

Вы можете добавлять собственные фото для локализации по VPS внутри Unity Editor. Для добавления фотографии перетащите её в папку Assets и в окне Inspector установите галочку Read/Write Enable и нажмите Apply в нижней части окна.

Image inspector

Теперь эту фотографию можно перетащить в публичное поле FakeTexture компонента FakeCamera на объекте VPS → MockData. После этого VPS будет использовать её при попытке локализоваться внутри Unity Editor.

Fake camera

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

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