2025-06-22 08:04:48 +09:00

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;
}
}
}