using System; using System.Collections.Generic; using Mono.Event; using Sirenix.OdinInspector; using UnityEngine; using UnityEngine.Playables; namespace UnityTest.ZXL { public class TimelineManager : MonoBehaviour { [ShowInInspector] private List _playableDirectors = new List(); private void Awake() { foreach (var playableDirector in _playableDirectors) { playableDirector.stopped += FirePlayableStopped; } } /// /// timeline播放结束触发的事件 /// /// private void FirePlayableStopped(PlayableDirector obj) { EventManager.Instance.FireNow(this, new PlayableStoppedEventArgs(obj)); } #if UNITY_EDITOR [Button] void Add() { var go = GameObject.Find("Timeline_M"); var list = go.GetComponentAllChild(); _playableDirectors = new List(list); } #endif } }