Задать вопрос
d1zz7
@d1zz7

Unity 2D прыжок по диагонали?

В Unity чайник, не судите строго. Есть код прыжка:
void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            BallJump();
        }
    }

    void BallJump()
    {
        rb.AddForce(transform.up * 14f, ForceMode2D.Impulse);
    }

Код работает, объект прыгает. Но, объект прыгает вверх, но хотелось бы чтобы он сделал прыжок по диагонали, то есть одновременно вверх и вперёд, как в игре Dunk Hit.
  • Вопрос задан
  • 566 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
freeExec
@freeExec
Участник OpenStreetMap
Потому, что вы силу вверх прикладываете transform.up. Возьмите нужный вам вектор направления.
Ответ написан
У Вас вектор направлен вверх transform.up * 14f. Логично, что прыжок только вверх. Задайте такой new Vector3(x, y, z), что он будет направлен в нужную Вам сторону.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
d1zz7
@d1zz7 Автор вопроса
Проблема решена, всем спасибо, всем пока!
void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            BallJump();
        }
    }

    void BallJump()
    {
        Vector2 jjump = new Vector2(rb.velocity.x + 15f,rb.velocity.y + 10f);
         rb.AddForce(jjump, ForceMode2D.Impulse);
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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