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

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

Похожие вопросы
Wanted. Лимассол
До 5 000 €
Wanted. Санкт-Петербург
от 60 000 до 100 000 ₽
Wanted. Тбилиси
от 5 000 до 6 000 $