Проблема с алгоритмо поиска пути
Добавлено: 12 авг 2020, 11:56
Добрый день! Я пытаюсь написать простого бота, который будет находить путь на карте от точки А до точки Б и перемещаться по установленному кратчайшему пути. Весь алгоритм я пытаюсь написать собственноручно, я знаю что есть такие вещи как NavMeshSurface + NavMeshAgent, но мне нужно именно своими руками все реализовать.
Для реализации я выбрал А* алгоритм поиска пути и реализовал его. Была проблема с определением стен на пути, эту проблему я решил путем создания двухмерной сетки и проверкой WallLayout. Как результат, пока, недобот находит кратчайший путь до точки и перемещается туда.
Проблема заключается в неровных поверхностях. Весь алгоритм и построение сетки работает на плоской поверхности, если я добавляю поверность с каким-нибудь наклоном, например любой подъем вверх, то я недогоняю как правильно построить координаты пути.
Пример работы алгоритма:
Пример неровной поверхности:
Скрипт построения сетки:
Для реализации я выбрал А* алгоритм поиска пути и реализовал его. Была проблема с определением стен на пути, эту проблему я решил путем создания двухмерной сетки и проверкой WallLayout. Как результат, пока, недобот находит кратчайший путь до точки и перемещается туда.
Проблема заключается в неровных поверхностях. Весь алгоритм и построение сетки работает на плоской поверхности, если я добавляю поверность с каким-нибудь наклоном, например любой подъем вверх, то я недогоняю как правильно построить координаты пути.
Пример работы алгоритма:
Скрытый текст:
Пример неровной поверхности:
Скрытый текст:
Скрипт построения сетки:
Скрытый текст: