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

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

Похожие вопросы