演算ノード
演算ノードをカスタマイズするには、演算ノード用のスクリプトファイルを作成し、行いたい処理を記述する必要があります。
Calculatorスクリプトファイルの作成
- Projectウィンドウから作成したい場所で右クリック。
- 右クリックメニューから、「Create > Arbor > Calculator C# Script」を選択。
- ファイル名を入力して決定
呼び出される関数
作成したCalculatorをArborEditorにて演算ノードに割り当てると、スクリプトの各関数が呼び出されるようになります。
- OnCalculate
演算が必要な際に呼ばれます。
ここで演算処理を記述し、OutputSlot.SetValueにてデータを出力してください。 - OnCheckDirty
再演算が必要かどうかの判定に呼ばれます。必要に応じてoverrideしてください。
演算に必要なデータが変更されており再演算が必要かどうかを返してください。
入力スロットの接続状態による再演算はArborの内部的に判定しているため意識する必要はありません。
(Transform.positionなど、外部オブジェクトの値を取り扱う際にtrueを返すようにする必要があります) - MonoBehaviourのメッセージ関数
詳しくはUnity ScriptReferenceのMonoBehaviourのMessagesを参照してください。
演算の流れ
- 必要に応じてInputSlot.GetValue()を呼び出します。
- 再演算が必要かどうかの判定にOnCheckDirtyが呼ばれます。
(ステートなどからOutputSlot.SetValueによって事前に値が変更されていた場合はOnCheckDirtyの結果にかかわらず再演算が行われます) - 再演算が必要な場合にOnCalculateが呼ばれます。
- OnCaluculateの中で必要に応じてInputSlot.GetValue()を呼び出します。
- 以下、再演算が必要なくなるまでInputSlotを辿って値を取得します。
変数とArbor Editor
基本はStateBehaviourの変数とArbor Editorと同じく、変数を宣言することでArbor Editorに表示され編集可能になります。
データフロー
演算ノードを活用するには、データフローによる値の入出力が重要です。
詳しくは、「スクリプティング : データフロー」を参照してください。