В последних нескольких статьях мы создали систему движения «укажи и щелкни». Но наш Плеер просто скользит по полу. Давайте посмотрим, как дать ему несколько анимаций.

Персонаж уже связан с 3 отдельными анимациями: бездействие, ходьба и бросок. Если мы используем окно анимации Unity, мы можем установить Idle в качестве состояния по умолчанию. Теперь, когда мы запустим игру, по крайней мере, наш персонаж не будет статуей.

Чтобы получить доступ к анимации ходьбы, мы хотим иметь возможность вызывать ее из нашего кода. Когда агент NavMesh, подключенный к нашему плееру, движется, мы можем использовать bool-параметр, чтобы разрешить переход между состояниями анимации, а также когда мы добраться до места назначения и нужно перестать идти.

Сначала нам нужно использовать GetComponent или GetComponentInChildren в зависимости от того, где Animator находится в иерархии по сравнению со скриптом Player. Затем в нашем операторе If, обнаружив наш Raycast, после нашего вызова SetDestination мы можем получить доступ к Animator и >Установитедля Bool значение true.

Для обратного перехода нам нужно сравнить расстояние между Игроком и Пунктом назначения, где мы щелкнули. Мы можем использовать Vector3.Distance, чтобы создать значение с плавающей запятой между двумя векторами, а затем определить, меньше ли это значение 1, чтобы установить Bool в false.