Rasagar/Library/PackageCache/com.unity.cinemachine/Runtime/Timeline/CinemachineTrack.cs
2024-08-26 23:07:20 +03:00

50 lines
1.5 KiB
C#

#if !UNITY_2019_1_OR_NEWER
#define CINEMACHINE_TIMELINE
#endif
#if CINEMACHINE_TIMELINE
using System;
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Timeline;
using Cinemachine;
//namespace Cinemachine.Timeline
//{
/// <summary>
/// Timeline track for Cinemachine virtual camera activation
/// </summary>
[Serializable]
[TrackClipType(typeof(CinemachineShot))]
[TrackBindingType(typeof(CinemachineBrain), TrackBindingFlags.None)]
[TrackColor(0.53f, 0.0f, 0.08f)]
public class CinemachineTrack : TrackAsset
{
/// <summary>
/// TrackAsset implementation
/// </summary>
/// <param name="graph"></param>
/// <param name="go"></param>
/// <param name="inputCount"></param>
/// <returns></returns>
public override Playable CreateTrackMixer(
PlayableGraph graph, GameObject go, int inputCount)
{
#if !UNITY_2019_2_OR_NEWER
// Hack to set the display name of the clip to match the vcam
foreach (var c in GetClips())
{
CinemachineShot shot = (CinemachineShot)c.asset;
CinemachineVirtualCameraBase vcam = shot.VirtualCamera.Resolve(graph.GetResolver());
if (vcam != null)
c.displayName = vcam.Name;
}
#endif
var mixer = ScriptPlayable<CinemachineMixer>.Create(graph);
mixer.SetInputCount(inputCount);
return mixer;
}
}
//}
#endif