StateMachineBehaviourを使ってみる
Unity5ではステートにStateMachineBehaviourを継承しているスクリプトがアタッチできるようになり、そのステートの再生中にコールバックが呼ばれます。
一覧
・OnStateEnter ステートが呼ばれたとき(Updateの最初)
・OnStateUpdate ステートが呼ばれたとき(最初と最後以外のUpdate)
・OnStateExit ステートが呼ばれたとき(Updateの最後)
・OnStateMove MonoBehaviour.OnAnimatorMoveの直後
・OnStateIK MonoBehaviour.OnAnimatorIKの直後
実際に追加してみるとこの様な感じです。
1つだけではなく、複数のスクリプトをアタッチすることが出来ます。
なので処理を細分化し、よりコンポーネント指向っぽい感じになりますね。
写真だと移動スクリプトと向きの変更スクリプト、アニメーションの速度変更スクリプトです、前者2つはともかく後者はなんでこんなことしてるか不思議に見えますよねw
Player制御のスクリプトがすっきりしそうです。というかUpdate内
のコードがほとんどなくなりました。
ちょうど今は敵キャラクターの制御を作成していて、EnemySTMを継承させてMoveというスクリプトからEnemyControllerの処理を呼び出しています。
敵キャラクター、プレイヤーの制御もこれでだいぶ作りやすくなったのではないでしょうか。