Алгоритм поиска пути A*. Руководство
Стандартная система поиска путей в Unity присутствует, но не поддерживает 2Д-проекты. Группа энтузиастов разработала свой алгоритм, который позволяет настроить похожую систему абсолютно не прибегая(!) к скриптингу. Тем не менее, если вы опытный пользователь, то легко сможете модифицировать ассет для ваших нужд!
Для начала перейдем по ссылке и скачаем free версию https://arongranberg.com/astar/download
Распакуем файл, далее открываем наш проект, жмем assets -> import package -> custom package и находим новораспакованный файл. Далее в появившемся меню жмем import. Как только с этим покончено, мы готовы настроить алгоритм.
Создаем новый GameObject и назовем его A*. Этот объект станет фундаментом системы и будет определять, в какой зоне будет осуществлен поиск путей.
Прикрепляем к нему новый (пришедший с импортом ассета) скрипт, найти можно через поиск в окне addComponent.
В появившемся в инспекторе меню создадим grid grahp (собственно сетка), для этого нажмем на соответствующую кнопку.
В новом окне, после нажатия grid graph поставьте галочку в 2d И use 2d physics. Появившуюся сетку растяните так, чтобы она накрывала нужный участок уровня:
в графе collision testing укажите расстояние, на котором враг будет обходить коллайдеры и имя маски, если у вас есть специфичное имя маски для обходимых препятствий.
Нажав кнопку scan, вы увидите проходимые и непроходимые зоны в соответствии с текущими настройками!
Теперь к настройке врага. Создаем пустой объект enemy и к нему крепим второй объект - самого врага со спрайтом.
Есть дефолтный скрипт для движения противника - ai path, крепим его к enemy.
Появится два компонента. Seeker - строит пути, path - идет по ним.
Меняем orientation на Yaxis (для 2д игр). В shaps подгоняем радиус под наш спрайт. Max speed - скорость. pick next waypoint определяет то, как близко он должен подойти к текущей точке маршрута, прежде чем пойти к следующей. Repath rate определяет расторопность - то как часто он будет пересчитывать и менять путь.
Вот сам путь, который строит ИИ.
Вот и все! довольно просто, мы прикрутили к проекту NavMesh, умного врага с возможностью модификации логики. У ассета есть еще куча опций для точной настройки, с ними вы можете ознакомиться на том же сайте, где качали пак.