Как сделать движение условного врага к игроку в юнити (RigidBody2d)
Я много где искал ответ и находил то что мне не совсем нужно. У меня есть игра видом Сверху, в ней расположен игрок и враг, враг должен преследовать игрока. Внимание, не через Transform а через RigidBody2D , т.е как видно враг должен преследовать игрока и просто долбиться в него. Мне не нужно ничего лишнего. Я пытался написать ИИ для врага используя уже написанный заранее скрипт передвижения игрока но таки не разобрался с направлением. Вот код движения игрока по которому я хотел сделать ИИ врагу. Цель: Сделать движение врага к игроку без использования Transform .
public class PlayerMove : MonoBehaviour < private Vector2 MoveObject; private Rigidbody2D PhysicalMove; private int PlayerSpeed = 10; void Start() < PhysicalMove = GetComponent(); > void Update() < Vector2 InputData = new Vector2(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical")); MoveObject = InputData.normalized * PlayerSpeed; >private void FixedUpdate() < PhysicalMove.MovePosition(PhysicalMove.position + MoveObject * Time.fixedDeltaTime); >>
Отслеживать
задан 9 апр 2022 в 13:45
462 4 4 серебряных знака 16 16 бронзовых знаков
Как сделать движения врага в Unity 2D?
Так что бы враг двигался в верх — в низ
- Вопрос задан 01 нояб. 2023
- 59 просмотров
1 комментарий
Простой 1 комментарий
Модератор @TosterModerator
На вопрос «как сделать» отвечает документация и поиск в интернет.
Тут отвечают на вопросы «почему я сделал, как в документации, а оно не работает. Поискал в интернет, вот запросы, в ответах не нашел. Что я делаю не так?»
Покажите, как вы пробовали решить проблему, приведите код попытки (пусть неудачной), опишите, как запускали, что ожидали и что получилось.
За готовыми решениями — на фриланс. В текущем виде это не вопрос, а задание. Нарушен п.5.12 Регламента.
Как сделать врага в unity 2d
Текущее время: 30 апр 2024, 18:36
Делаем простого врага.
Научился сам? Помоги начинающему.
Сообщений: 5 • Страница 1 из 1
Делаем простого врага.
gogogo3 24 ноя 2014, 11:14
Здравствуйте, сейчас я поделюсь информацией — как сделать простого врага?
У меня версия Unity3D 4.6.0 Beta
В уроке всего 7 шагов.
1. Создаём новый объект GameObject > 3D Object > Cube. Переместите его в нужное место.
2. Создадим скрипт на C# и назовём его Enemy. ВНИМАНИЕ! Если вы его назовёте по-другому, то скрипт может не работать! Особенно у тех, кто пишет с ошибками.
3. Откроем скрипт и сотрите всё, что в нём есть, и скопируйте и вставьте вот этот код:
Синтаксис:
Синтаксис: [ Показать ]
Используется csharp
using UnityEngine ;
using System.Collections ;
public class Enemy : MonoBehaviour {
public Transform player ;
public float move_speed ;
public float rotation_speed ;
public Transform enemy ;
void Update ( )
{
var look_dir = player. position — enemy. position ;
look_dir. y = 0 ;
enemy. rotation = Quaternion. Slerp ( enemy. rotation ,Quaternion. LookRotation ( look_dir ) ,rotation_speed * Time. deltaTime ) ;
enemy. position += enemy. forward * move_speed * Time. deltaTime ;
}
}
4. После этого сохраните скрипт.
5. Повесьте(прикрепите) скрипт к врагу, которому мы создавали, то есть к объекту.
Там в настройках скрипта после прикрепления, мы видим 4 поля: Player, Move_speed, Rotation_speed, Enemy.
6. В поле Player скидываем нашего персонажа которым мы будем управлять. Это может быть First Person Controller или если вы делаете для мобильных устройств, то заходите в First Person Controls потом снова First Person Controls и вы увидите Player вот и скидываете его.
В поле Move_speed указываем скорость передвижения врага, в моём случае это будет 3.
В поле Move_speed указываем скорость поворотов врага, в моём случае это будет 5.
В поле Enemy скидываем самого врага(объекта).
7. В настройке мы всё сделали, теперь создаём новый компонент RigidBody к врагу. Ничего не меняйте в настройках компонента!
Вот и всё, враг создан, теперь можете запустить игру и проверить Враг будет просто за вами ходить.
Если будут вопросы, пишите в эту тему. Кто не зарегистрирован на этом форуме, зарегистрируйтесь, если хотите задать вопрос
До встречи, приятного программирования и создания игры!
gogogo3 UNITрон Сообщения: 189 Зарегистрирован: 24 ноя 2014, 10:45
Re: Делаем простого врага.
lawson 24 ноя 2014, 12:42
Как сделать врага в unity 2d
Rodion56730 18 дек 2018, 06:27
Новичок в unity. Не могу сделать приследование персонажем.Враг просто никак не реагирует на игрока.
Синтаксис:
Синтаксис: [ Показать ]
Используется csharp
using System.Collections ;
using System.Collections.Generic ;
using UnityEngine ;
public class Enemy : MonoBehaviour {
//дистанция от которой он начинает видеть игрока
public float seeDistance = 2f ;
//дистанция до атаки
public float attackDistance = 2f ;
//скорость енеми
public float speed = 6 ;
//игрок
private Transform target ;
void Start ( )
{
target = GameObject . FindWithTag ( «Player» ) . transform ;
}
void Update ( )
{
if ( Vector3. Distance ( transform . position , target. transform . position ) < seeDistance ) {
if ( Vector3. Distance ( transform . position , target. transform . position ) > attackDistance )
{
transform . right = target. transform . position — transform . position ;
transform . Translate ( new Vector3 ( 0, 0, speed * Time. deltaTime ) ) ;