Davilkus
@Davilkus
Делаю игры)

Как реализовать поиск укрытий и реакцию на гранаты?

Мне надо реализовать поиск укрытий и реакцию на гранаты (бежать куда подальше!) для AI в Unity (используют NavMesh).

Кто шарит, не могли бы Вы пожалуйста дать пару советов - как лучше это реализовать?

На данный момент (в прототипе) AI реагирует на гранаты с помощью триггера.

Пока для поиска укрытий я знаю 2 способа:
1) вручную расставлять точки укрытия и потом искать ближайшую, проверять Raycast-ом в игрока (точно ли укрытие?) и бежать туда.
2) Автоматическая генерация укрытий (не знаю как реализовать).

Есть ли какие-нибудь фичи в Unity либо ассеты, позволяющие автоматически расставлять точки укрытий (можно платно)? Или как лучше написать свой алгоритм?
  • Вопрос задан
  • 243 просмотра
Решения вопроса 2
freeExec
@freeExec
Участник OpenStreetMap
У гранаты есть радиус действия, значит можно взять все клетки в этой зоне и проверить насколько они защищают от гранаты и игрока. Выбрать наилучший вариант.
Ответ написан
Комментировать
@NIKROTOS
Начинающий программист.
Укрытие, вместе с точками, можно сразу засунуть в префаб.
В зависимости от расстояния до игрока, для юнита может быть предпочтительная дальность перехода до укрытия. При виде игрока, юнит решает, бей или беги, в случае бега, определяет укрытия в радиусе предпочтительной дальности перехода, и спрашивает их, подходят ли они, чтоб прятаться от игрока, который там. Получив ответы, сравнивает и по дальности, типу укрытия и углу укрытия, определяет куда лучше бежать.
В зависимости от того, 1 он или нет, выбирает подходящие действия: кинуть гранату, стрелять(в слепую или нет), скрываться, менять позицию, опять же, всё это в зависимости от расстояния до игрока и возможно его оружия. В зависимости от расстановки укрытий. можно даже ставить ловушки.
Опять же в зависимости от типа врага, меняются предпочтения, тяжёлой бронированной пехоте, не интересны укрытия, ближники, либо перебегают из укрытия в укрытие, чем ближе тем меньше предпочтительное расстояние, могут пытаться обойти, перебегать когда игрок не видит и тд... Либо укуренные, бегут по прямой.
Юниты должны стараться занять предпочтительную позицию, для своей роли, если юнит с дробовиком но на большом расстоянии, он может сменить роль и вести огонь на подавление или затаиться.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы