Задать вопрос
@walfer2020
Начинающий программист

Как сделать плавное перемещение персонажа в Unity(С ускорением и затуханием)?

Нужно сделать плавное перемещение 2D персонажа
Написанный снизу код резко начинает его перемещать и при отпускании кнопки он резко останавливается
Я хочу что бы персонаж как бы разгонялся и останавливался не в мгновение
Как это сделать?
Мой код:
public class movement : MonoBehaviour
{
    private Rigidbody2D rb;
    public float speed;
    float move;
    void Start()
    {
        rb = GetComponent<Rigidbody2D>();
    }

    void FixedUpdate()
    {
        move = Input.GetAxis("Horizontal");
        rb.velocity = new Vector2(move*speed, rb.velocity.y);
    }
}
  • Вопрос задан
  • 1927 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
@PageDev
Используйте `rb.AddForce(move * speed, rb.velocity.y);`, что бы сделать плавное перемещение.
Итоговый код:
public class movement : MonoBehaviour
{
    private Rigidbody2D rb;
    public float speed;
    float move;
    void Start()
    {
        rb = GetComponent<Rigidbody2D>();
    }

    void FixedUpdate()
    {
        move = Input.GetAxis("Horizontal");
        rb.AddForce(move * speed,  rb.velocity.y);
    }
}
Ответ написан
Ваш ответ на вопрос

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

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