Есть контролер для НПС
Синтаксис:
Используется csharp
void NpsMove()
{
if (controller.isGrounded) // Проверяем находится ли НПС на, земде если да тогда
{
moveDirection = new Vector3(0, 0, myHorisontal); // Задаем вектор движения
moveDirection = transform.TransformDirection(moveDirection);
moveDirection *= nps.MoveSpeed; // Задаем скорость
if (npsJump && !npsJumpeng)
{
moveDirection.y = jumpSpeed;
npsJumpeng = true;
npsJump = false;
}
}
moveDirection.y -= gravity * Time.deltaTime; // Включаем гравитацию
controller.Move(moveDirection * Time.deltaTime); // Смещаем ГО
}
{
if (controller.isGrounded) // Проверяем находится ли НПС на, земде если да тогда
{
moveDirection = new Vector3(0, 0, myHorisontal); // Задаем вектор движения
moveDirection = transform.TransformDirection(moveDirection);
moveDirection *= nps.MoveSpeed; // Задаем скорость
if (npsJump && !npsJumpeng)
{
moveDirection.y = jumpSpeed;
npsJumpeng = true;
npsJump = false;
}
}
moveDirection.y -= gravity * Time.deltaTime; // Включаем гравитацию
controller.Move(moveDirection * Time.deltaTime); // Смещаем ГО
}
Мне нужно реализовать следующее:
НПС движется с нормальной скоростью в строну игрока. Когда достигает расстояния допустимое для прыжка НПС прыгает на игрока.
Пробовал делать так
Синтаксис:
Используется csharp
if(Vector3.Distance(curentNpsTarget.transform.position, this.transform.position) > minTargetDistance) // НПС находится дальше чем минимальное расстояние до игрока
{
if(Vector3.Distance(curentNpsTarget.transform.position, this.transform.position) <= jumpDistance) // НПС достиг расстояния для прыжка
{
this.transform.position = curentNpsTarget.transform.position; // Перемещение НПС к цели
}
}
{
if(Vector3.Distance(curentNpsTarget.transform.position, this.transform.position) <= jumpDistance) // НПС достиг расстояния для прыжка
{
this.transform.position = curentNpsTarget.transform.position; // Перемещение НПС к цели
}
}
Недостаток такого прыжка в том, что нету самого прыжка. Я просто перемещаю НПС к игроку а хотелось бы что бы был сам факт прыжка.
Думал сделать так:
Когда НПС достиг расстояния для прыжка увеличить скорость передвижения в 2-3 раза и прыгнуть.
Но тут задача. Как рассчитать скорость движения так, что бы прыжок четно покрыл расстояние до цели? как я показывал на картинке выше.
Заранее благодарен за ответы.