お世話になっております。
初歩的なことで恐縮なのですが、ArborFSMのステートに関して疑問があります。
ArborFSMコンポーネントをつけたGameObjectを非アクティブ化しても、FSMの遷移は開始ステートに戻らない(リセットされない)ようですが、これは仕様という認識で良いでしょうか?
また、強制的に開始ステートまで戻すには、トリガートランジションを使用するのがパッと思いつきますが、他にも方法はあったりするでしょうか?
PlaymakerではGameObjectの非アクティブ化で遷移がリセットされて開始ステートまで戻るので、Arborの仕様なのか、それとも私の使い方が間違っているのか、ハッキリさせた方が良いかなと思い、質問させていただきます。
お手すきの際にでもご確認いただけますと幸いです。
開始ステートに戻るタイミングについての質問
Forum rules
Here is the forum to do the questions about how to use to Arbor developer.
Attention point:
ここは、Arbor開発者へ使い方に関する質問を行うフォーラムです。
注意点:
Here is the forum to do the questions about how to use to Arbor developer.
Attention point:
- We can not answer your questions about your project specific issues.
- We can not answer your questions on Unity's specification issues.
- Please check Arbor Documentation and ask a question if you still don't know how to use it. If the desired function is not described in the document, it is highly possible that the function does not exist from the beginning, so go to the request forum.
ここは、Arbor開発者へ使い方に関する質問を行うフォーラムです。
注意点:
- ユーザー様のプロジェクトの仕様上の問題や設計に対する質問には答えられません。
- Unityの仕様上の問題に対する質問には答えられません。
- Arbor Documentationを確認の上、それでも使い方がわからない場合にご質問ください。欲しい機能の記載がドキュメントにない場合は機能が元から存在しない可能性が高いので要望フォーラムへ。
- caitsithware
- 管理人
- Posts: 495
- Joined: 2015/08/17 12:41
Re: 開始ステートに戻るタイミングについての質問
ご利用ありがとうございます。
GameObjectのアクティブ状態とFSMの再生状態についてですね。
まず、GameObjectやArborFSMコンポーネントを非アクティブにした場合、FSM内の再生状態は一時停止扱いとなり仕様です。
再びアクティブに戻すと非アクティブにする直前の状態から再開されます。
開始ステートに戻したい場合は以下の方法があります。
GameObjectのアクティブ状態とFSMの再生状態についてですね。
まず、GameObjectやArborFSMコンポーネントを非アクティブにした場合、FSM内の再生状態は一時停止扱いとなり仕様です。
再びアクティブに戻すと非アクティブにする直前の状態から再開されます。
開始ステートに戻したい場合は以下の方法があります。
- Stopメソッド
再生停止します。
再生を再び開始したい場合はPlayメソッドを呼び出してください。
またスクリプトからの呼び出しの他、組み込み挙動のPlay/Stopもありますので他のFSMからもPlay/Stopが可能です。 グラフの再生/停止をする場合は、基本的にはPlay/Stopの使用を推奨いたします。 - BackToStartState
自身のFSMの開始ステートに遷移します。
StateLinkの接続が不要な代わりに接続線はグラフに表示されません。
また、いつ開始ステートに戻したいか自身のグラフ内で完結しない場合は、結局のところ下記の常駐ステート+TriggerTransitionのような処理も必要になります。 - TriggerTransition
特定文字列を受け取った場合に遷移します。
例えば常駐ステートにTriggerTransitionを追加し接続先を開始ステートに設定、FSM外からSendTriggerを呼び出せば開始ステートに戻せます。
こちらはおっしゃる通りの方法ですね。
Re: 開始ステートに戻るタイミングについての質問
ご返信ありがとうございます!
細かく説明していただき、大変ありがたいです。
特にPlay/Stopの説明は参考になりました。
疑問点が解消しましたので、心置きなくArborで開発を続けられそうです。
細かく説明していただき、大変ありがたいです。
特にPlay/Stopの説明は参考になりました。
疑問点が解消しましたので、心置きなくArborで開発を続けられそうです。