Здравствуйте.
Задача: добавление анимации персонажу при повороте(при нажатии на клавишу А - поворот на 90*, при нажатии на S - поворот на 180*, при нажатии на D - поворот на -90*). После того, как проигралась анимация поворота(и персонаж повернул, соответственно), состояние должно вернуться в idle-анимацию.
Как я решал: создал корутину, которая ждет 1 сек и после возвращает состояние в idle. Код:
bool isWPressed = Input.GetKey(KeyCode.W);
if ( (Input.GetKey(KeyCode.D)) && (!isWPressed) )
{
animator.SetBool("isLeftTurn", true);
yield return new WaitForSeconds(1f);
animator.SetBool("isLeftTurn", false);
}
else if ( (Input.GetKey(KeyCode.A)) && (!isWPressed) )
{
animator.SetBool("isRightTurn", true);
yield return new WaitForSeconds(1f);
animator.SetBool("isRightTurn", false);
}
else if ( (Input.GetKey(KeyCode.S)) && (!isWPressed) )
{
animator.SetBool("isBackTurn", true);
yield return new WaitForSeconds(1f);
animator.SetBool("isBackTurn", false);
}
Скриншот аниматора:
Проблема: все работает, но что-то подсказывает, что это костыль и можно сделать правильнее. Какие альтернативы?