Unity StateMachineBehaviour
Unity5で追加されたStateMachineBehaviourを使うと、
アニメーションの状態によってなにかする、ということがスッキリ書けるようになったみたい。
具体的には
にあるように、
animator.GetCurrentAnimatorStateInfo(0).isName("Idle")
はもう書かずにすむようになりました。
実際、これを書くときモヤモヤしてました。モヤモヤ。
ちょっと試してみたのですが、
例えばジャンプ中に入力による移動をさせないようにするためのbool パラメータをアニメータに持たせてOnStateEnter,OnStateExitでon/offするようなもの。
このForbidWalkを追加したステートではフラグが立ち、オブジェクト側のMonoBehaviourで移動処理のさいにチェックをすると、
移動可能なステートでのみ、移動を行うというようになります。
自分が試した際は、transformの移動処理はMonoBehaviourに書いたのですが、
更にWalkステートに移動のStateMachineBehaviourを足すことで、
そちらで移動処理を行うこともできます。
アニメータに任せて大丈夫な限りは、そういう風にしちゃって良さそう。