トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

AnimatorのSetTriggerで設定したアニメーションが2回遷移するのはGetDownのせい【Unity】

Spaceキーを押したらJumpするようにAnimatorのSetTriggerを設定した。

f:id:bibinbaleo:20210301114821p:plain

だが、Spaceキーを押したら2回ジャンプする。

ググったらこちらの記事で解決した

SetTriggerでONにしたTriggerは「アニメーションの遷移が行われる際にOFFにされる」という仕組みになっていますが、「ボタンを押している間はSetTriggerをやり続ける」だと、アニメーションの遷移が行われてTriggerがOFFにされたすぐ後にまたそのTriggerがONになり、ショットが終わって待機状態のアニメーションに戻った後も、mecanimは「ショットアニメへ移行のTriggerがONになってるじゃないか」と認識し、ボタンを離しているのにまたショットのアニメーションが再生される・・・みたいな事になります。

dotandidea.seesaa.net

 回避するには、「Input.GetButton命令ではなくInput.GetButtonDownでボタンを押した瞬間だけSetTriggerをやる」

なるほど!確かにWASDと同じようにGetButtonにしてた><

 

GetButtonDownにしたら2回動かなくなった!

 

やったー