info | 現在のフレームのための FrameData |
playerData | DirectorPlayer.Play で指定されたツリーの下にカスタムデータが渡されます。 |
デルタタイムで Playable を評価します。
ProcessFrame は Playable でその作業を行う必要があるステージです。 このメソッドは Playable ツリーをプレイするときすべてのフレームに呼ばれます。 ProcessFrame メソッドは 2 つのパラメーター、現在の時刻と時間差を記述する現在の FrameData 構造体とカスタムデータオブジェクトがあります。このカスタムオブジェクトは Playable でその作業を行う必要があるデータです。 Playable から Playable にツリーの下で渡されます。このカスタムオブジェクトは Director.Play メソッドにパラメーターとして渡されます。
public class SomeData { public int foobar = 0; public int increment = 1; }
public class MyCustomPlayable : Playable { public override void ProcessFrame(FrameData info, object customData) { var theData = customData as SomeData; theData.foobar += theData.increment; } }
public class SwapSign : Playable { public override void ProcessFrame(FrameData info, object customData) { var theData = customData as SomeData; if (theData.foobar > 20) theData.increment = -1; if (theData.foobar <= 0) theData.increment = 1; } }
public class GraphIncrementDecrement : MonoBehaviour { private SomeData myCustomData;
void Start() { var rootPlayable = new MyCustomPlayable() var childPlayable = new SwapSign();
Playable.Connect(childPlayable, rootPlayable);
GetComponent<DirectorPlayer>().Play(rootPlayable, myCustomData); }
void Update() { Debug.Log("foobar is now:" + myCustomData.foobar); } }