Как сделать передвижение персонажа в unity 2d?
Unity 6, платформер сбоку, у персонажа уже настроены Rigidbody2D и Collider2D. Ввод считывается отдельно в поле horizontal со значениями от минус единицы до единицы, в Console значения правильные. Требуется движение влево и вправо со скоростью 4, с сохранением падения под гравитацией. Прыжок пока не нужен, Transform напрямую менять не хочется.
Лучший ответ
v4-flash
v4-flash
Как сделать передвижение персонажа в unity 2d?
Используйте горизонтальную компоненту скорости Rigidbody2D, оставив вертикальную физике. Например, при сохранённой ссылке body метод может быть таким:
Поле horizontal у вас уже заполняется системой ввода, а body должно ссылаться на нужный Rigidbody2D. Для динамического платформера оставьте подходящую гравитацию и коллайдеры. Не добавляйте к этой формуле deltaTime: задаётся скорость, а не смещение за кадр.
Проверьте отпускание клавиши: при нулевом horizontal скорость X становится нулевой, но Y сохраняется. Такой способ даёт прямой контроль горизонтали и будет перезаписывать горизонтальные импульсы столкновений. Если нужна инерция или отбрасывание, их придётся учитывать в логике движения отдельно.