Главная » Статьи » Unity3D » Туториалы

Unity3D - WayPoints контроллер. Простой ИИ

И так, теперь объясним все текстом, ибо не все могут смотреть видео, может интернет слабый... Приступим?
Для начала мы объявили переменные, которые отвечают за массив контрольных точек, скорости движения и дистанцию, которая нужна для определения следующей точки, мы же должны когда-то достигнуть точку и лучше сделать это заранее, чтобы не было задержек. А также объявили приватную переменную для работы с текущей точкой.
Код
public Transform[] Points;
  public float Speed = 0.0f, Distance = 0.0f;
  private int _currentPoint;

После чего мы сразу пишем условие, которое говорит системе: если я достиг конца точек, то я хочу начат заново;
Код
if (_currentPoint == Points.Length) _currentPoint = 0;

Создав локальную переменную и сказав, что она равна дистанции от текущей позиции объекта до нужной позиции нужной точки, то есть текущей
Код
float _currentDistance = Vector3.Distance(transform.position, Points[_currentPoint].position);
  if (_currentDistance <= Distance) _currentPoint++;

Мы обязаны проверит на дистанцию. То есть мы должны сравнить, если дистанция меньше указанной, то мы достигли точки и надо двигаться дальше, то есть делаем переменную текущей точки на 1 больше.
Наш объект должен всегда смотреть на точку, ибо не хорошо ходить попой или боком
Код
transform.LookAt (Points [_currentPoint].position);

А также теперь осталось дело за малым - научить двигаться игрока. Как это сделать? Просто берем и передвигаем объект от текущей позиции до позиции нужной точки и с определенной скоростью:
Код
transform.position = Vector3.MoveTowards (transform.position, Points[_currentPoint].position, Speed * Time.deltaTime);
Категория: Туториалы | Добавил: AboveReason (08.12.2014)
Просмотров: 1443 | Теги: Unity, контрольные точки, контроллер, ии, искуственный интеллект, Unity3D, как создать игру, WayPoint, Unity (Software), AI | Рейтинг: 1.0/9
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]