@Haddle
Делаю игры 2Д на юнити

Почему не работает velocity на право и лево?

Например пишу такой код:
_rb.velocity = Vector2.up * jumpForce;
И мой персонаж прыгает вверх, очевидно.
А мне надо, чтобы он как бы отскакивал от врага в другую сторону, например - враг ударил справа, пишу такой код
_rb.velocity = Vector2.left * knockbackForce;

или такой - 

_rb.velocity = new Vector2(knockbackForce, _rb.velocity.y);

В этих переменных у меня записано по 2. (float)

Вроде как они должны отталкиваться. Если знаете как это решить, пишите, но если знаете - как сделать отталкивание не через этот способ - тоже буду благодарен.
  • Вопрос задан
  • 133 просмотра
Решения вопроса 1
freeExec
@freeExec
Участник OpenStreetMap
Почему бы не прочитать документацию первым делом? Где уже давно высказаны умные мысли.
The velocity vector of the rigidbody. It represents the rate of change of Rigidbody position.

In most cases you should not modify the velocity directly, as this can result in unrealistic behaviour - use AddForce instead Do not set the velocity of an object every physics step, this will lead to unrealistic physics simulation. A typical usage is where you would change the velocity is when jumping in a first person shooter, because you want an immediate change in velocity.

Note: The velocity is a world-space property.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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