49 lines
2.1 KiB
C#
49 lines
2.1 KiB
C#
|
#if TEXT_TRACK_REQUIRES_TEXTMESH_PRO
|
||
|
|
||
|
using TMPro;
|
||
|
using UnityEngine;
|
||
|
using UnityEngine.Playables;
|
||
|
using UnityEngine.Timeline;
|
||
|
|
||
|
namespace Timeline.Samples
|
||
|
{
|
||
|
// A track that allows the user to change Text parameters from a Timeline.
|
||
|
// It demonstrates the following
|
||
|
// * How to support blending of timeline clips.
|
||
|
// * How to change data over time on Components that is not supported by Animation.
|
||
|
// * Putting properties into preview mode.
|
||
|
// * Reacting to changes on the clip from the Timeline Editor.
|
||
|
// Note: This track requires the TextMeshPro package to be installed in the project.
|
||
|
[TrackColor(0.1394896f, 0.4411765f, 0.3413077f)]
|
||
|
[TrackClipType(typeof(TextPlayableAsset))]
|
||
|
[TrackBindingType(typeof(TMP_Text))]
|
||
|
public class TextTrack : TrackAsset
|
||
|
{
|
||
|
// Creates a runtime instance of the track, represented by a PlayableBehaviour.
|
||
|
// The runtime instance performs mixing on the timeline clips.
|
||
|
public override Playable CreateTrackMixer(PlayableGraph graph, GameObject go, int inputCount)
|
||
|
{
|
||
|
return ScriptPlayable<TextTrackMixerBehaviour>.Create(graph, inputCount);
|
||
|
}
|
||
|
|
||
|
// Invoked by the timeline editor to put properties into preview mode. This permits the timeline
|
||
|
// to temporarily change fields for the purpose of previewing in EditMode.
|
||
|
public override void GatherProperties(PlayableDirector director, IPropertyCollector driver)
|
||
|
{
|
||
|
TMP_Text trackBinding = director.GetGenericBinding(this) as TMP_Text;
|
||
|
if (trackBinding == null)
|
||
|
return;
|
||
|
|
||
|
// The field names are the name of the backing serializable field. These can be found from the class source,
|
||
|
// or from the unity scene file that contains an object of that type.
|
||
|
driver.AddFromName<TMP_Text>(trackBinding.gameObject, "m_text");
|
||
|
driver.AddFromName<TMP_Text>(trackBinding.gameObject, "m_fontSize");
|
||
|
driver.AddFromName<TMP_Text>(trackBinding.gameObject, "m_fontColor");
|
||
|
|
||
|
base.GatherProperties(director, driver);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#endif
|