データフロー
出力スロット
OutpotSlotIntなどの出力スロットを宣言することでデータ出力ができます。
スクリプト例
TestOutputSlotBehaviourスクリプトファイルを作成し、以下のコードを記述してください。
|
|
このスクリプトをArborFSMのステートに追加すると以下のようになります。

出力スロットクラス
- OutputSlotInt
- OutputSlotFloat
- OutputSlotBool
- OutputSlotGameObject
- OutputSlotString
- OutputSlotVector2
- OutputSlotVector3
- OutputSlotQuaternion
- OutputSlotRect
- OutputSlotBounds
- OutputSlotColor
- OutputSlotTransform
- OutputSlotRectTransform
- OutputSlotRigidbody
- OutputSlotRigidbody2D
- OutputSlotComponent
- OutputSlotLong
- OutputSlotCollider
- OutputSlotCollider2D
- OutputSlotCollision
- OutputSlotCollision2D
- OutputSlotRaycastHit
- OutputSlotRaycastHit2D
- OutputSlotUnityObject
- OutputSlotAny
入力スロット
InputSlotIntなどの入力スロットを宣言することでデータ出力ができます。
スクリプト例
TestInputSlotBehaviourスクリプトファイルを作成し、以下のコードを記述してください。
|
|
このスクリプトをArborFSMのステートに追加すると以下のようになります。

入力スロットクラス
- InputSlotInt
- InputSlotFloat
- InputSlotBool
- InputSlotGameObject
- InputSlotString
- InputSlotVector2
- InputSlotVector3
- InputSlotQuaternion
- InputSlotRect
- InputSlotBounds
- InputSlotColor
- InputSlotTransform
- InputSlotRectTransform
- InputSlotRigidbody
- InputSlotRigidbody2D
- InputSlotComponent
- InputSlotLong
- InputSlotCollider
- InputSlotCollider2D
- InputSlotCollision
- InputSlotCollision2D
- InputSlotRaycastHit
- InputSlotRaycastHit2D
- InputSlotUnityObject
- InputSlotAny
FlexibleField
入力スロットだけでなく、固定値やパラメータも扱いたい場合はFlexibleFieldが便利です。
スクリプト例
TestFlexibleFieldBehaviourスクリプトファイルを作成し、以下のコードを記述してください。
|
|
このスクリプトをArborFSMのステートに追加すると以下のようになります。

FlexibleField関連クラス
- FlexibleInt
- FlexibleFloat
- FlexibleBool
- FlexibleGameObject
- FlexibleString
- FlexibleEnumAny
- FlexibleVector2
- FlexibleVector3
- FlexibleQuaternion
- FlexibleRect
- FlexibleBounds
- FlexibleColor
- FlexibleTransform
- FlexibleRectTransform
- FlexibleRigidbody
- FlexibleRigidbody2D
- FlexibleComponent
- FlexibleLong
- FlexibleField
(継承して使用します)
スロットの型制約

InputSlotAnyやInputSlotComponentなどでは型制約を属性で指定できます。
スクリプト例
TestConstraintSlotBehaviourスクリプトファイルを作成し、以下のコードを記述してください。
|
|
使用できる属性
クラス | 属性 |
---|---|
OutputSlotAny | SlotTypeAttribute |
InputSlotAny | ClassTypeConstraintAttributeから派生したクラス SlotTypeAttribute |
InputSlotComponent | ClassTypeConstraintAttributeから派生したクラス SlotTypeAttribute 指定の他、Componentクラスに制約される。 |
InputSlotUnityObject | ClassTypeConstraintAttributeから派生したクラス SlotTypeAttribute 指定の他、UnityEngine.Objectクラスに制約される。 |
FlexibleComponent | ClassTypeConstraintAttributeから派生したクラス SlotTypeAttribute 指定の他、Componentクラスに制約される。 |
DataLink属性

DataLink属性を使用することで、対応している型のInputSlotやFlexibleFieldがない場合でも、定数もしくはデータフローからの入力を受け付けられるようになります。
スクリプト例
ExampleDataLinkBehaviourスクリプトファイルを作成し、以下のコードを記述してください。
|
|
注意点
- NodeBehaviourを継承したクラス(StateBehaviourやActionBehaviourなど)のフィールドでのみ使用できます。
- 配列やリストには使用できません。
カスタマイズ
データスロットの作成
自作したクラスのデータスロットも作成できます。
詳しくは、「スクリプティング : データスロット」を参照してください。
Variable
パラメータも作成する場合は、Variable Generatorを使用すると楽に作成できます。
詳しくは、「スクリプティング : Variable」を参照してください。
演算ノード
演算ノードに使用するスクリプトも作成できます。
詳しくは、「スクリプティング : 演算ノード」を参照してください。