StateBehaviour

StateBehaviourをカスタマイズするには、StateBehaviour用のスクリプトファイルを作成し、行いたい処理を記述する必要があります。

StateBehaviourスクリプトファイルの作成

  • Projectウィンドウから作成したい場所で右クリック。
  • 右クリックメニューから、「Create > Arbor > StateBehaviour C# Script」を選択。
  • ファイル名を入力して決定

呼び出される関数

作成したStateBehaviourをArborEditorにてステートに割り当てると、スクリプトの各関数が呼び出されるようになります。

  • OnStateAwake
    初めてステートに遷移してきたときに呼ばれます。
  • OnStateBegin
    ステートに遷移してきたときに呼ばれます。
  • OnStateUpdate
    ArborFSMのUpdate()のタイミングで呼ばれます。
    毎フレーム呼ばれるかどうかはArborFSMのUpdate Settingsに依存。
  • OnStateLateUpdate
    ArborFSMのLateUpdate()のタイミングで呼ばれます。
    毎フレーム呼ばれるかどうかはArborFSMのUpdate Settingsに依存。
  • OnStateEnd
    ステートから離れるときに呼ばれます。
  • MonoBehaviourのメッセージ関数
    詳しくはUnity ScriptReferenceのMonoBehaviourのMessagesを参照してください。

注意点

  • MonoBehaviourのenabledは実行制御のために内部で使用しているため、代替となるbehaviourEnabledを使用してください。

呼び出し順

  • OnStateAwake/OnStateBegin/OnStateUpdate/OnStateLateUpdate/OnStateEndはArbor Editorでのステートノードに追加されている上から順に呼ばれます。
  • MonoBehaviour関連はUnityによる実行順にしたがって呼び出されます。
    詳しくはUnity Manualの イベント関数の実行順 を参照してください。

変数とArbor Editor

作成したスクリプトにpublicもしくはSerializeField属性をつけた変数を宣言することでArbor Editorで編集可能になります。

1
2
3
4
5
6
7
8
using UnityEngine;
using System.Collections;
using Arbor;

public class TestBehaviour : StateBehaviour {
	public string myName;
	// 略
}    

ステートの接続

フィールドの追加

作成したスクリプトにpublicもしくはSerializeField属性をつけたStateLinkを宣言することでArbor Editorで接続スロットが表示されるようになります。

1
2
3
4
5
6
7
8
using UnityEngine;
using System.Collections;
using Arbor;

public class TestBehaviour : StateBehaviour {
	public StateLink nextState;
	// 略
}    

接続先への遷移

遷移したいタイミングでTransitionを呼ぶと遷移できます。

1
2
	Transition( nextState );
    

データフロー

StateBehaviourではデータフローによる値の入出力が可能です。

詳しくは、「スクリプティング : データフロー」を参照してください。

スクリプティング : データフロー