前回 からの続きです。
いろいろあって1ヶ月ほど着手できなかったのですが、やっと落ち着いてきたので、さあ再開しようと思ったら、
久しぶりに見るコードがなかなか雑然としていたので、少し整理しました。
結果、こうなっています。
https://gist.github.com/mokemokechicken/dedb0e31825915fe15e9
PlayerState というClassを追加して、UnityChanの内部状態をそこで管理するようにします。
このClassは、以下の様な特徴があります。
- イメージは StateMachine
- UnityChanの状態を管理するが、振る舞いは管理しない
- Key Eventや衝突Eventを受け取り、状態を変化させる
- Eventの種類によって、 UnityChanの Action を呼び出したりする
ただ、ちゃんとしたStateMachineを実装しようとすると結構面倒なので、なんちゃってな感じになっています。
現状だと、ロジックは同じで場所だけ移動した感じになっています。。。
でもまあ、ちょっとは関心事が分離できたような気がします。
Animator
とこの PlayerState
はかなり役割が似ていますが、Animatorが状態遷移時にActionを呼んでくれたりはしなさそうなので、微妙にやりたいことができない感じです。
座標的な移動とAnimatorの制御を今後もう少し頑張りたいと思います。