using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Playables; using UnityEngine.Timeline; using Cinemachine; public class AssignToPlayableTrack : MonoBehaviour { [SerializeField] PlayableDirector[] playableDirectors; public void AssignPlayerToTimelines() { Animator playerAnimator = PlayerManager.GetInstance().FPSControllerAnimator; CinemachineBrain mainCameraCinemachineBrain = PlayerManager.GetInstance().PlayerMainCamera.GetComponent(); for (int i = 0; i < playableDirectors.Length; i++) { var timelineAsset = playableDirectors[i].playableAsset as TimelineAsset; var trackList = timelineAsset.GetOutputTracks(); foreach (var track in trackList) { #region Assign Player Related if (track.name == "Player Animator Track") { playableDirectors[i].SetGenericBinding(track, playerAnimator); } if (track.name == "Main Camera Cinemachine Track") { playableDirectors[i].SetGenericBinding(track, mainCameraCinemachineBrain); } #endregion playableDirectors[i].RebuildGraph(); } } } }