40 lines
1.6 KiB
C#
40 lines
1.6 KiB
C#
using System;
|
|
using UnityEngine;
|
|
using UnityEngine.Playables;
|
|
using UnityEngine.Timeline;
|
|
|
|
namespace Timeline.Samples
|
|
{
|
|
// Timeline track to play videos.
|
|
// This sample demonstrates the following
|
|
// * Using built in blending, speed and clip-in capabilities in custom clips.
|
|
// * Using ClipEditors to customize clip drawing.
|
|
// * Using a mixer PlayableBehaviour to perform look-ahead operations.
|
|
// * Managing UnityEngine.Object lifetime (VideoPlayer) with a PlayableBehaviour.
|
|
// * Using ExposedReferences to reference Components in the scene from a PlayableAsset.
|
|
[Serializable]
|
|
[TrackClipType(typeof(VideoPlayableAsset))]
|
|
[TrackColor(0.008f, 0.698f, 0.655f)]
|
|
public class VideoTrack : TrackAsset
|
|
{
|
|
// Called to create a PlayableBehaviour instance to represent the instance of the track, commonly referred
|
|
// to as a Mixer playable.
|
|
public override Playable CreateTrackMixer(PlayableGraph graph, GameObject go, int inputCount)
|
|
{
|
|
// This is called immediately before CreatePlayable on VideoPlayableAsset.
|
|
// Each playable asset needs to be updated to the last clip values.
|
|
foreach (var clip in GetClips())
|
|
{
|
|
var asset = clip.asset as VideoPlayableAsset;
|
|
if (asset != null)
|
|
{
|
|
asset.clipInTime = clip.clipIn;
|
|
asset.startTime = clip.start;
|
|
}
|
|
}
|
|
|
|
return ScriptPlayable<VideoSchedulerPlayableBehaviour>.Create(graph, inputCount);
|
|
}
|
|
}
|
|
}
|