Главная » Статьи » 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); | |
Mне нравится
+9
| |
Просмотров: 1443
| Теги: |
Всего комментариев: 0 | |