public override void ProcessFrame(Playable playable, FrameData info, object playerData) { // Use instead of the Play function var trackBinding = playerData as Record3DPlayback; if (trackBinding == null) { return; } int inputCount = playable.GetInputCount(); for (int i = 0; i < inputCount; i++) { var playableInput = (ScriptPlayable <R3DVideoBehaviour>)playable.GetInput(i); R3DVideoBehaviour input = playableInput.GetBehaviour(); if (input == null || input.endLocation == null) { continue; } int frameIdx = (int)Math.Round(playableInput.GetTime() * input.endLocation.fps); input.endLocation.LoadFrame(frameIdx); } }
public override Playable CreatePlayable(PlayableGraph graph, GameObject owner) { var player = endLocation.Resolve(graph.GetResolver()); var playable = ScriptPlayable <R3DVideoBehaviour> .Create(graph, template); R3DVideoBehaviour clone = playable.GetBehaviour(); clone.endLocation = player; playback = player; return(playable); }