На персонаже весит NavMeshAgent, мне нужно заставить его прыгнуть, и чтобы он находясь в воздухе, продолжал двигаться к цели. Я пытался использовать вот этот скрипт, но после нажатия пробела персонаж приостанавливается, а потом продолжает идти дальше. Если нажать пробел несколько раз то он подлетает вверх, но при этом не продолжает двигаться в сторону цели, и после того как он приземляется он уже не реагирует на пробел.
Код
private NavMeshAgent agent;
public LayerMask groundMask;
private Rigidbody rb;
public Transform target;
public float jumpForce;
public float groundRadius;
public bool isGrounded;
public Collider[] ground;
void Start()
{
agent = GetComponent<NavMeshAgent>();
agent.autoBraking = false;
agent.destination = target.position;
rb = GetComponent<Rigidbody>();
}
void Update()
{
ground = Physics.OverlapSphere(transform.position, groundRadius, groundMask);
if (ground.Length == 0)
{
isGrounded = false;
agent.enabled = false;
}
else{
isGrounded = true;
agent.enabled = true;
agent.destination = target.position;
}
Jump();
}
void Jump()
{
if(Input.GetKeyDown(KeyCode.Space) && isGrounded)
{
isGrounded = false;
agent.enabled = false;
rb.AddForce(transform.up * jumpForce, ForceMode.Impulse);
agent.velocity = rb.velocity;
}
}