データポート同士の接続を行う際に、データの型変換を行うノードをスクリプトで作成できます。
スクリプトの書き方
LogicToolkit.ConvertNode
を継承したクラスを作成します。
- 型に
System.SerializableAttribute
を適用します。
static bool Convertible(System.Type from, System.Type to)
というメソッドを定義し、型変換が可能かを判定します。
protected override void Convert(IInputDataPort input, IOutputDataPort output)
というメソッドを定義し、型変換処理を記述します。
条件を満たすデータ型のポートを接続した際に、自動的に変換ノードが挟み込まれます。
各入出力ポートは接続した際のデータの型から作成されます。
コード例
組み込まれているEvaluateToQuaternionNodeは以下のように実装しています。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace LogicToolkit
{
[System.Serializable]
public class EulerToQuaternionNode : ConvertNode
{
static bool Convertible(System.Type from, System.Type to)
{
return from == typeof(Vector3) && to == typeof(Quaternion);
}
protected override void Convert(IInputDataPort input, IOutputDataPort output)
{
if (input.TryGetValue<Vector3>(out var value))
{
output.TrySetValue(Quaternion.Euler(value));
}
}
}
}
|