50 lines
1.5 KiB
C#
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
|