40 lines
956 B
C#
40 lines
956 B
C#
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<VideoPlayerBehaviour>.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;
|
|
}
|
|
}
|
|
} |