using UnityEngine.Playables; public class TimelineClipManager : AClipManager { PlayableDirector[] playables; public override void Init() { playables = transform.GetComponentsInChildren(); } 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(); } } } } }