現在、Unityを用いたゲーム開発で、キャラクターの状態によって行動が変わるようにしたいのですが、私のゲーム構成が途中(未熟)なため、キャラクターの状態が追加されたり遷移の条件が変わってしまったりして、上手く状態遷移を表すことができません。
状態遷移について、何か良い書籍や資料(回路ではなく概念)、ツールなどがあれば教えてほしいです。
自分の中での解決策が順に、
- swith,ifでひたすら分岐する
⇒状態と遷移が増えると、キャラクターのクラスが爆発する
2. CharacterStateクラスがある。
フィールドには、状態の種類、状態保持変数
メソッドには、状態遷移
状態遷移では、遷移の条件に合うと状態保持変数に次の状態を代入する
キャラクターの方で、状態保持変数の値で条件分岐し行動する
⇒現在のコード、結局switchとifで分岐
3. StateクラスとTransitionクラスとがある
それぞれ具体クラスから継承される。
Transitonクラスは遷移を表し、NextStateと、Predicateをフィールドに持つ
NextStateは、次の状態
Predicateは、遷移の条件
Stateクラスは状態を表し、TransitonListと、Nowをフィールドに持つ
TransitionListは、いくつかのTransitionオブジェクトのリスト
Nowはプロパティで、TransitionListのPredicateからマッチするものを選び、Transitionオブジェクトの保持するStateのNowを返す。マッチしなければ、自分を返す。
⇒状態遷移図が作れる。State.Nowで評価されていない入力や時間を条件として最新の状態が返ってくるようにできそう。
3.は、状態遷移図をそのままクラスにしてみたものですが、不勉強もあって、これで良いのか、これに何かもっと必要でないか、これ以外にもっと良い方法がないか、と分からない状態が続いています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。