using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Playables; public class OfficeTimelineControl : MonoBehaviour { private PlayableDirector mPlayableDirector; //过场动画所用的玩家模型 private GameObject playerModel; // Start is called before the first frame update void Start() { mPlayableDirector = GetComponent(); mPlayableDirector.Stop(); playerModel = transform.GetChild(0).gameObject; mPlayableDirector.stopped += OnPlayableDirectorStopped; StartTimeline(); //TODO 这里先掉一下,后续应该流程控制的时候触发调用 //GameManager.EventMgr.AddEventListener(); } public void StartTimeline() { mPlayableDirector.Play(); } private void OnPlayableDirectorStopped(PlayableDirector aDirector) { if (mPlayableDirector == aDirector) { GameManager.UIMgr.ShowPanel(E_UI_Layer.System, (panel) => { panel.Init(); GameManager.EventMgr.EventTrigger(Enum_EventType.HideMask); }); Invoke(nameof(DestroyPlayer), 2f); } } private void DestroyPlayer() { Destroy(playerModel); } void OnDestroy() { mPlayableDirector.stopped -= OnPlayableDirectorStopped; } }