3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

UnityChanの状態と振る舞いを分けて管理する

Posted at

前回 からの続きです。
いろいろあって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の制御を今後もう少し頑張りたいと思います。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?