2025-03-11 15:30:07 +08:00

48 lines
1.2 KiB
C#

using UnityEngine.Playables;
public class TimelineClipManager : AClipManager
{
PlayableDirector[] playables;
public override void Init()
{
playables = transform.GetComponentsInChildren<PlayableDirector>();
}
public override float PlayClip(string value)
{
if (playables.Length == 0) return 0;
for (int i = 0; i < playables.Length; i++)
{
if (playables[i].name == value)
{
playables[i].Play();
return (float)playables[i].duration;
}
}
return 0;
}
public override void ResetClip(string value = null)
{
if (playables.Length == 0) return;
if (string.IsNullOrEmpty(value))
{
for (int i = 0; i < playables.Length; i++)
{
if (playables[i].name == "ResetClip")
{
playables[i].Play();
}
}
}
else
{
for (int i = 0; i < playables.Length; i++)
{
if (playables[i].name == value)
{
playables[i].Play();
}
}
}
}
}