コード例 #1
0
    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);
        }
    }
コード例 #2
0
    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);
    }