Как сделать врага в unity 2d
Перейти к содержимому

Как сделать врага в unity 2d

  • автор:

Как сделать движение условного врага к игроку в юнити (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?

65424409e08aa084924523.png

Так что бы враг двигался в верх — в низ

  • Вопрос задан 01 нояб. 2023
  • 59 просмотров

1 комментарий

Простой 1 комментарий

TosterModerator

Модератор @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 ) ) ;

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *