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を参照してください。

呼び出し順

arborcallbacks

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

変数とArbor Editor

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

using UnityEngine;
using System.Collections;
using Arbor;

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

ステートの接続

フィールドの追加

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

using UnityEngine;
using System.Collections;
using Arbor;

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

接続先への遷移

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

Transition( nextState );

データ入力スロット

フィールドの追加

作成したスクリプトにpublicもしくはSerializeField属性をつけたInputSlotIntやInputSlotFloatなどを宣言ことで、入力スロットが表示されます。
使用可能なInputSlotは スクリプトリファレンス を参照してください。

using UnityEngine;
using Arbor;

public class TestBehaviour : StateBehaviour
{
	public InputSlotInt slotInt;
	// 略
}

値の取得

値を取得するにはGetValueメソッドを使用します。

int data = 0;
slotInt.GetValue(ref data);
Debug.Log("Value " + data);

Flexible版データ入力

フィールドの追加

作成したスクリプトにpublicもしくはSerializeField属性をつけたFlexibleIntやFlexibleFloatなどを宣言するとFlexibleなデータ設定フィールドが表示されます。
使用可能なクラスは スクリプトリファレンス を参照してください。

using UnityEngine;
using Arbor;

public class TestBehaviour : StateBehaviour
{
	public FlexibleInt flexible;
	// 以下略
}


ArborEditorウィンドウでCalculucatorを選択すれば演算ノードからの入力を受け付ける。

値の取得

値を取得するにはvalueプロパティを使用します。

Debug.Log("Value " + flexible.value);

データ出力スロット

フィールドの追加

作成したスクリプトにpublicもしくはSerializeField属性をつけたOutputSlotIntやOutputSlotFloatなどを宣言することで、出力スロットが表示されます。
使用可能なOutputSlotは スクリプトリファレンス を参照してください。

using UnityEngine;
using Arbor;

public class TestBehaviour : StateBehaviour
{
	public OutputSlotInt slotInt;
	// 以下略
}

値の設定

値を設定するにはSetValueメソッドを使用します。

slotInt.SetValue(10);

Privacy Preference Center

Your Privacy

This site uses cookies to display contents and advertisements tailored to users, provide social media functions, measure advertisement impressions and clicks. We also gather information on users' site usage status and provide them to social media, advertisement distribution and data analysis partners. Each partner may use this information in combination with other information that the user provided to each partner or other information gathered when the user used the service of each partner.

Analytics, Ads