@p4p

Плавный поворот колес при мобильном управлении или симуляция оси Input.GetAxis("Horizontal"). Как лучше?

Управление руля при нажатии на кнопки "влево" & "вправо". При нажатии ставлю bool left/right в true и при разжатии в false соответственно. Мне нужно чтобы при нажатии кнопку поворота, колесо плавно повернулось и при разжатии соответственно плавно встало в положение 0.

Как я сейчас это реализовал
if (left && horizontal > -1)
                horizontal -= 0.1f;
            else if (!left && horizontal < -0.1f)
                horizontal += 0.1f;

            if (right && horizontal < 1)
                horizontal += 0.1f;
            else if (!right && horizontal > 0.1f)
                horizontal -= 0.1f;


Проблема в том что колесо при разжатии не становится в 0. Всегда остается какой то градус "недоповорота". В чем я ошибся? И есть ли другой способ без велосипедов?
  • Вопрос задан
  • 256 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Ichimitsu
Для плавный поворотов используйте функции Vector3.Lerp/Slerp или Quaternion.Lerp/Slerp
Делается это примерно так
Quaternion.Slerp(rotation, lookRotation, SmoothLookAt * Time.deltaTime);


SmoothLookAt это параметр отвечающий, как быстро rotation перейдет в lookRotation, тоже самое для движения и Vector, делается это в Update или LateUpdate
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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