Arborを使ってハマったこと - 常駐ステート

はじめに

今日はArbor 2を使っていて少しハマった所を記載。

事象と解決策

前回書いた以下の記事

project-unknown.hatenablog.com


で、扉の開閉を検知してボタンの活性/非活性を行う処理を、
最初以下のように、ボタンを押した時の処理と常駐ステートでボタンの活性/非活性を同一FSM内で定義してました。

f:id:project-unknown:20170815231353p:plain


これを実行すると、以下みたいになります。

f:id:project-unknown:20170815231111g:plain

常駐ステートの方は動くのですが、ボタンクリックの方が検知してくれていない。

原因としては、以下の公式に記載されている通り、常駐ステートの位置付けは「割り込み」である為に、
ボタンよりも常に条件が合致する常駐ステートの方が優先して処理されてしまっていたと推察しています。

arbor.caitsithware.com

この件の対応としては、GameObjectに別なArbor FSMをアタッチして、新規に作成したFSMの方に常駐ステートを置いて想定通りの動作が実現できるようになりました。
↓な感じ

f:id:project-unknown:20170815231829p:plain


今日は簡単ですが、以上で。