using System; using UnityEngine; using UnityEngine.Playables; using UnityEngine.Timeline; using UnityEngine.Video; [Serializable] public class VideoPlayerClip : PlayableAsset, ITimelineClipAsset { [Header("Video Settings")] public VideoClip videoClip; [Header("Playback Settings")] public float playbackSpeed = 1f; public ClipCaps clipCaps => ClipCaps.None; public override Playable CreatePlayable(PlayableGraph graph, GameObject owner) { var playable = ScriptPlayable.Create(graph); var behaviour = playable.GetBehaviour(); behaviour.videoClip = videoClip; behaviour.playbackSpeed = playbackSpeed; return playable; } public override double duration { get { if (videoClip != null) { return (double)videoClip.length; } return 1.0; } } }