Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Все Вопросы Мои Вопросы

Помогите с багом гравитации и передвижения персонажа

Закрыт

UnityC#2D

Дело такое, я начинающий разработчик, изучаю юнити буквально несколько дней. Наткнулся на одну неприятную проблему. Когда я прописываю такой код передвижения игрока, то мой персонаж под силой гравитации падает на землю ОЧЕ-Е-Е-ЕНЬ медленно. Такое чувство что чтото в этой строчке его тормозит. То-есть с передвижением персонажа по оси Х всё ок. А вот по оси Y торможение падения создаётся((

rigidbody.velocity = new Vector2(Input.GetAxisRaw("Horizontal") * runSpeed, 0);

Но когда я добавляю к знаку "равно" - плюсик, то баг с гравитацией пропадает и всё ок.
rigidbody.velocity  = new Vector2(Input.GetAxisRaw("Horizontal") * runSpeed, 0);

Но тут появляется другой баг. Мой персонаж начинает ОЧЕ-Е-ЕНЬ быстро передвигаться по оси Х. Подскажите как решить такую проблему???


Комментарии

2
MrCoder 1 год назад

На твоего персонажа действует гравитация, и поэтому его velocity постоянно увеличивается со временем, а ты эту velocity каждый раз сбрасываешь до значения 0 через метод Update() или FixedUpdate(). Из-за этого и получается такое торможение.

Чтобы падение персонажа не тормозилось, нужно в качестве второго аргумента указать не 0, а то значение velocity, которое у него имеется в данный момент.

rigidbody.velocity = new Vector2(Input.GetAxisRaw("Horizontal") * runSpeed, rigidbody.velocity.y);

1
Trubach 1 год назад

MrCoder, Спасибо большое. Помогло)

Гости не могут отвечать на вопросы. Войдите на Сайт или Зарегистрируйтесь