Как сделать врага в unity3d

Как сделать врага в unity3d

Я делаю 2D игру с двумя сторонами, левой и правой, чтобы игрок мог двигаться только влево или вправо или прыгать. Я сделал ИИ в качестве врага. ИИ работает нормально. Он может пойти к игроку, чтобы убить его.

Проблема в том, что враг не может повернуться или повернуться лицом к игроку, когда он идет убить его. Я хочу, чтобы ИИ посмотрел на игрока. Когда игрок находится слева от врага, противник должен повернуть налево, чтобы посмотреть на игрока. Я искал много сайтов, и я не нашел правильного решения. Это мой вражеский сценарий:

Игра 2D, влево, вправо, с прыжком с использованием Unity3D.

1 ответ

Вам нужна функция, которая переворачивает ваш спрайт, вы можете сделать это, изменив масштаб преобразования и сохранив логическое значение, чтобы проверить, где оно обращено к bool facingRight; вот так как то так

и в вашем Update проверьте, нужно ли его переворачивать или нет

Это так сказать ИИ бота в одноклеточном виде, но тем не менее, кто хочет сделать нечто подобное для своего платформера, данный материал может пригодится. Поведение бота. Если игрок не замечен, то бот будет двигаться от точки А к точке Б, затем обратно и так по кругу. Если игрок попадает в поле зрения бота, он начинает преследовать игрока, с целью прямого контакта и передачи, например, повреждения или чего угодно еще. Если бот упрется в препятствие, то перейдет в режим ожидания, тоже самое произойдет, когда бот обнаружит, что впереди яма и он не может больше следовать за игроком. При этом, есть возможность настройки допустимой высоты, допустим, когда впереди небольшой спуск/обрыв и можно продолжить преследование.

Читайте также:  Как использовать тариф для телефона в модеме

Для удобства редактирования уровня, с начало нужно сделать префаб вейпоинта, какой-нибудь спрайт чтобы визуально ориентироваться, для этого объекта нужно назначить отдельный слой и отключить его в настройках камеры Culling Mask, чтобы сделать такие объекты не видимыми в самой игре, но в тоже время без проблем использовать их в редакторе для настройки.

Теперь, создадим вспомогательный скрипт для редактора, с помощью которого мы будем создавать вейпоинты для каждого бота, короче говоря, чтобы не создавать их в ручную. Итак, содержание скрипта:

Для того чтобы всё работало, нужно выбрать скрипт и указать ранее созданный префаб, данный скрипт добавлять на сцену не нужно.

Еще нам понадобиться скрипт который будет содержать ссылку на нашего персонажа, мы получаем ее при старте сцены и далее, объект игрока будет доступен для всех остальных скриптов, это очень удобно и не нужно каждый раз выполнять поиск объекта:

Главное не забыть персонажу поставить тег Player. Данный скрипт необходимо добавить на сцену.

Далее, "мозги" бота. За основу был взят наш скрипт управления 2D персонажем.

Поиск игрока или сканирование поверхности, делается с помощью рейкаста, одновременно возможно использование только одного луча. При настройке параметров нужно учитывать, что бот будет останавливаться перед обрывам, если он превышает допустимую высоту, однако при этом не должно возникать ситуации, когда игрок может перепрыгнуть яму, а бот тем временем просто упадет на нижнюю платформу. То есть высоту надо ставить такую, которая подходит под не высокие спуски/ступеньки и подобное. Еще важный момент, это чтобы для ботов и персонажа, был отдельный слой, иначе рейкаст будет работать не корректно. Когда в нужную позицию добавлен бот, просто жмем кнопочку Generate Waypoints и рядом с ним появятся вейпоинты, остается только растащить точки на нужное расстояние и всё.

Читайте также:  Pccooler gi x6b blue

Перед тестированием рекомендуется в плеере редактора включить Gizmos.

только по комментариям стало понятно что вам нужно эдакое "ПАТРУЛИРОВАНИЕ" .
от точки к точке маршрут и обратно.

так как более подробного описания задачи нет, то для начала — на коронтинах вполне себе вариант.
если же нужен более универсальный вариант и более сложные маршруты — то или изучайте, придумывайте и пишите (для опыта и все такое, сделаете через какое то время, сама суть и логика там очевидная, не знаю даже что подсказывать то там надо *)
или возьмите плагин, тот же Simple Waypoint System (sws) и сделайте на нем.

*
собственно про логику. массив точек. от одной до другой интерполируем учитывая скорость.
сюда можно приплести кривую (по формуле или заданную через AnimationCurve)
изменение скорости — тоже опционально можно впихнуть по кривой, по анимации, линейное.

в итоге — хотите разгребайте и учитесь кодить. а хотите — посмотрите какой-нибудь простой твинер или плагин понавороченее.

Ссылка на основную публикацию
Как связаться с инстаграм по телефону
В этой статье расскажем о том, как работает горячая линия линия Инстаграмм, можно ли обратиться по телефону или доступен только...
Как разблокировать телефон samsung galaxy j1 mini
Характеристики Samsung Galaxy J1 mini Отзывы о Samsung Galaxy J1 mini Инструкция Samsung Galaxy J1 mini Прошивка Samsung Galaxy J1...
Как разблокировать флешку от защиты записи
Извиняюсь за заголовок, но именно так задают вопрос, когда при действиях с USB флешкой или SD картой памяти Windows сообщает...
Как связаться с инстаграмом
В этой статье расскажем о том, как работает горячая линия линия Инстаграмм, можно ли обратиться по телефону или доступен только...
Adblock detector