В предыдущих частях мы создали персонажа и настроили камеру от первого лица:
https://dzen.ru/media/id/63879c35c9d124210bb34194/unity-3d-kamera-ot-pervogo-lica-63e0af1cdc0e2014ed398d7e
А также добавили перемещение персонажа
https://dzen.ru/media/id/63879c35c9d124210bb34194/unity3d-peremescenie-personaja-63e0d861e21298331008932c
В этой части рассмотрим анимацию персонажа. Для этого давайте скачаем готовые скелетные анимации из пакета:
В этом пакете много различных анимаций, которые разделены по типам и объединены контроллерами в группы. Вы можете использование связок анимаций в этом пакете, открыв демо сцену в папке Assets\Kevin Iglesias\Basic Motions.
Мы для простоты создадим свой контроллер, так как наш персонаж может находиться только в двух состояниях - покой и перемещение.
Создайте новый Animator Controller и назовите его ManController:
Откройте этот контроллер и переместите мышкой анимацию покоя BasicMotions@Idle01 из папки Assets\Kevin Iglesias\Basic Motions\Animations\Idles в поле контроллера. Аналогично переместите анимацию бега BasicMotions@Run01 из папки Assets\Kevin Iglesias\Basic Motions\Animations\Movement.
Создайте логический параметр IsMove, с помощью которого мы будем определять состояние персонажа. Настройте связи между анимациями, используя этот параметр:
А в коде скрипта персонажа добавьте изменение этого параметра:
anim.SetBool("IsMove", isWalking);
Скрипт персонажа будет выглядеть следующим образом:
Аналогичным образом можно добавить персонажу другие анимации и настроить из использование через параметры.