vkvk
@vkvk

Как сделать прыжок в unity3d с помощью Rigidbody?

Всем привет. Делаю управление на 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);
        }
    }
}
  • Вопрос задан
  • 1053 просмотра
Решения вопроса 1
freeExec
@freeExec
Участник OpenStreetMap
Надо подобрать значение, что бы был не "телепорт". А из школьного курса должно быть известно, чем больше масса объекта, тем больше ускорение свободного падания.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы