Всем привет. Делаю управление на rigidbody для персонажа, но не понимаю, как сделать прыжок. Делал с помощью Rigidbody.velocity и AddForce(), но работает как-то странно. Капсула (игрок) резко поднимается вверх, будто телепорт, и после медленно падает вниз. Параметры Rigidbody я не менял. Код:
public class Player : MonoBehaviour
{
public float speed, jumpForce;
public float mouseX;
Rigidbody rb;
private void Start()
{
rb = GetComponent<Rigidbody>();
}
private void Update()
{
Move();
}
private void LateUpdate()
{
mouseX = Input.GetAxis("Mouse X") * 5;
transform.Rotate(mouseX * new Vector3(0, 1, 0));
}
private void Move()
{
float horizontal = Input.GetAxis("Horizontal");
float vertical = Input.GetAxis("Vertical");
rb.velocity = ((transform.right * horizontal) + (transform.forward * vertical)) * speed;
if (Input.GetKeyDown(KeyCode.Space))
{
rb.AddForce(Vector3.up * jumpForce);
}
}
}