2016-01-16 4 views
3

Я в настоящее время активации параметра запуска для цикла скачка анимации с использованием:Unity 2D Перейти Анимацию C#

isGrounded моего «является игроком заземлен BOOL», который я использую, чтобы определить, работает ли или не мой игрок разрешено прыгать. Я использую объект дочернего игрока и использую для этого Physics2D.lineCast(myPlayer, myPlayerGround, playerMask).

Я запускаю анимацию перехода (используя параметр триггера для передачи анимации перехода из прогона или бездействия, которые являются единственными двумя другими анимациями, которые я использую, которые в настоящее время работают безупречно), используя пробел, то же самое Я подключаюсь к скорости ускорения оси y.

Я не могу найти надежный способ сброса триггера. Я попытался сбросить его, если isGrounded вернулось true, но тогда я предполагаю, что получаю ложный положительный результат, поскольку он будет запускаться только в первую очередь, если isGrounded вернет true? Я также попробовал запустить анимацию, запустив проверку, чтобы увидеть, возвращает ли isGrounded ложь, но если это так, анимация перехода будет играть, если я упаду с уступа, а также на самом деле прыгнула, что, конечно, не делает смысл.

ответ

0

Я бы поставил несколько условий, в том числе направление скорости и состояние «ОК». Чтобы сбросить анимацию перехода, вы должны двигаться вниз, и должен быть запущен isGrounded.

0

Для достижения идеальных результатов в такой ситуации я всегда доверяю делегатам. Вы можете использовать делегата, например, вашу землю, через сообщение, если игроки приземлится. Here Я дал подробную реализацию точно такого же сценария. Посмотрите на мой ответ.

0

Вы должны добавить условия в свои анимации.

Animator.SetBool("isTouched", isTouched); 

Когда вы установите новое значение, анимация будет анимирована. Взгляните на учебник this.

Смежные вопросы