Zefirot
@Zefirot

Как сделать поворот к ближайшему углу?

Угол поворота у меня исходит из нажатия кнопок, а далее происходит плавный поворот
.....
if(Input.GetKey(KeyCode.W) && !Input.GetKey(KeyCode.A) && !Input.GetKey(KeyCode.D)){ angle = 0f; }
else if(Input.GetKey(KeyCode.W) && Input.GetKey(KeyCode.D)){ angle = 45f; }
else if(!Input.GetKey(KeyCode.W) && !Input.GetKey(KeyCode.S) && Input.GetKey(KeyCode.D)){ angle = 90f; }
else if(Input.GetKey(KeyCode.S) && Input.GetKey(KeyCode.D)){ angle = 135f; }
else if(Input.GetKey(KeyCode.S) && !Input.GetKey(KeyCode.D) && !Input.GetKey(KeyCode.A)){ angle = 180f; }
else if(Input.GetKey(KeyCode.S) && Input.GetKey(KeyCode.A)){ angle = 225f; }
else if(!Input.GetKey(KeyCode.S) && !Input.GetKey(KeyCode.W) && Input.GetKey(KeyCode.A)){ angle = 270f; }
else if(Input.GetKey(KeyCode.W) && Input.GetKey(KeyCode.A)){ angle = 315f; }
transform.eulerAngles = Vector3.Lerp(transform.eulerAngles, new Vector3(0f, angle , 0f), Time.deltaTime * 5f);
....

проблема заключается в том что к примеру от угла 315 к углу 45 идёт поворот по убыванию от 315 к 45, а не 315 до 360 и далее к 45, подскажите к в данном случае делать поворот к ближнему углу?
  • Вопрос задан
  • 25 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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