演算ノードのカスタマイズ


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

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

  • Projectウィンドウから作成したい場所で右クリック。
  • 右クリックメニューから、「Create > Arbor > Calculator」からお好きな言語を選択。
    create-calculator-script-file
  • ファイル名を入力して決定

呼び出される関数

作成した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に表示され編集可能になります。