39 lines
1.3 KiB
C#
39 lines
1.3 KiB
C#
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<CinemachineBrain>();
|
|
|
|
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();
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|