Class TrackAsset | Package Manager UI website
docs.unity3d.com
    Show / Hide Table of Contents

    Class TrackAsset

    A PlayableAsset representing a track inside a timeline.

    Inheritance
    System.Object
    TrackAsset
    ActivationTrack
    AnimationTrack
    AudioTrack
    ControlTrack
    GroupTrack
    MarkerTrack
    PlayableTrack
    Namespace: UnityEngine.Timeline
    Syntax
    [Serializable]
    public abstract class TrackAsset : ISerializationCallbackReceiver, IPropertyPreview, ICurvesOwner, PlayableAsset

    Fields

    m_Clips

    Declaration
    protected List<TimelineClip> m_Clips
    Field Value
    Type Description
    System.Collections.Generic.List<TimelineClip>

    Properties

    curves

    An animation clip storing animated properties of the attached PlayableAsset

    Declaration
    public AnimationClip curves { get; }
    Property Value
    Type Description
    AnimationClip

    duration

    The length, in seconds, of this track

    Declaration
    public override sealed double duration { get; }
    Property Value
    Type Description
    System.Double

    end

    The end time, in seconds, of this track

    Declaration
    public double end { get; }
    Property Value
    Type Description
    System.Double

    hasClips

    Whether this track contains any TimelineClip.

    Declaration
    public bool hasClips { get; }
    Property Value
    Type Description
    System.Boolean

    hasCurves

    Whether this track contains animated properties for the attached PlayableAsset.

    Declaration
    public bool hasCurves { get; }
    Property Value
    Type Description
    System.Boolean
    Remarks

    This property is false if the curves property is null or if it contains no information.

    isEmpty

    Whether this track is considered empty.

    Declaration
    public virtual bool isEmpty { get; }
    Property Value
    Type Description
    System.Boolean
    Remarks

    A track is considered empty when it does not contain a TimelineClip, Marker, or Curve.

    isSubTrack

    Returns whether this track is a subtrack

    Declaration
    public bool isSubTrack { get; }
    Property Value
    Type Description
    System.Boolean

    locked

    The local locked state of the track.

    Declaration
    public bool locked { get; set; }
    Property Value
    Type Description
    System.Boolean
    Remarks

    Note that locking a track only affects operations in the Timeline Editor. It does not prevent other API calls from changing a track or it's clips.

    This returns or sets the local locked state of the track. A track may still be locked for editing because one or more of it's parent tracks in the hierarchy is locked. Use lockedInHierarchy to test if a track is locked because of it's own locked state or because of a parent tracks locked state.

    lockedInHierarchy

    The locked state of a track. (RO)

    Declaration
    public bool lockedInHierarchy { get; }
    Property Value
    Type Description
    System.Boolean
    Remarks

    Note that locking a track only affects operations in the Timeline Editor. It does not prevent other API calls from changing a track or it's clips.

    This indicates whether a track is locked in the Timeline Editor because either it's locked property is enabled or a parent track is locked.

    muted

    Whether the track is muted or not.

    Declaration
    public bool muted { get; set; }
    Property Value
    Type Description
    System.Boolean
    Remarks

    A muted track is excluded from the generated PlayableGraph

    mutedInHierarchy

    The muted state of a track.

    Declaration
    public bool mutedInHierarchy { get; }
    Property Value
    Type Description
    System.Boolean
    Remarks

    A track is also muted when one of its parent tracks are muted.

    outputs

    Returns a description of the PlayableOutputs that will be created by this track.

    Declaration
    public override IEnumerable<PlayableBinding> outputs { get; }
    Property Value
    Type Description
    System.Collections.Generic.IEnumerable<PlayableBinding>

    parent

    The owner of this track.

    Declaration
    public PlayableAsset parent { get; }
    Property Value
    Type Description
    PlayableAsset
    Remarks

    If this track is a subtrack, the parent is a TrackAsset. Otherwise the parent is a TimelineAsset.

    start

    The start time, in seconds, of this track

    Declaration
    public double start { get; }
    Property Value
    Type Description
    System.Double

    supportsNotifications

    Indicates if a track accepts markers that implement .

    Declaration
    public bool supportsNotifications { get; }
    Property Value
    Type Description
    System.Boolean
    Remarks

    Only tracks with a bound object of type or can accept notifications.

    timelineAsset

    The TimelineAsset that this track belongs to.

    Declaration
    public TimelineAsset timelineAsset { get; }
    Property Value
    Type Description
    TimelineAsset

    Methods

    CalculateItemsHash()

    Declaration
    protected virtual int CalculateItemsHash()
    Returns
    Type Description
    System.Int32

    CreateClip<T>()

    Creates a clip on the track with a playable asset attached, whose derived type is specified by T

    Declaration
    public TimelineClip CreateClip<T>()
        where T : ScriptableObject, IPlayableAsset
    Returns
    Type Description
    TimelineClip

    Returns a TimelineClip whose asset is of type T

    Type Parameters
    Name Description
    T

    A PlayableAsset derived type

    Remarks

    Throws an InvalidOperationException if the specified type is not supported by the track. Supported types are determined by TrackClip attributes that decorate the TrackAsset derived class

    CreateCurves(String)

    Creates an AnimationClip to store animated properties for the attached PlayableAsset.

    Declaration
    public void CreateCurves(string curvesClipName)
    Parameters
    Type Name Description
    System.String curvesClipName

    The name of the AnimationClip to create. This method does not ensure unique names. If you want a unique clip name, you must provide one. See ObjectNames.GetUniqueName for information on a method that creates unique names.

    Remarks

    If curves already exists for this track, this method produces no result regardless of the value specified for curvesClipName.

    CreateDefaultClip()

    Creates a TimelineClip on this track.

    Declaration
    public TimelineClip CreateDefaultClip()
    Returns
    Type Description
    TimelineClip

    Returns a new TimelineClip that is attached to the track.

    Remarks

    The type of the playable asset attached to the clip is determined by TrackClip attributes that decorate the TrackAsset derived class

    CreateMarker(Type, Double)

    Creates a marker of the requested type, at a specific time, and adds the marker to the current asset.

    Declaration
    public IMarker CreateMarker(Type type, double time)
    Parameters
    Type Name Description
    System.Type type

    The type of marker.

    System.Double time

    The time where the marker is created.

    Returns
    Type Description
    IMarker

    Returns the instance of the created marker.

    Remarks

    All markers that implement IMarker and inherit from are supported.

    See Also
    Marker

    CreateMarker<T>(Double)

    Creates a marker of the requested type, at a specific time, and adds the marker to the current asset.

    Declaration
    public T CreateMarker<T>(double time)
        where T : ScriptableObject, IMarker
    Parameters
    Type Name Description
    System.Double time

    The time where the marker is created.

    Returns
    Type Description
    T

    Returns the instance of the created marker.

    Type Parameters
    Name Description
    T
    Remarks

    All markers that implement IMarker and inherit from are supported.

    See Also
    Marker

    CreatePlayable(PlayableGraph, GameObject)

    Overrides PlayableAsset.CreatePlayable(). Not used in Timeline.

    Declaration
    public override sealed Playable CreatePlayable(PlayableGraph graph, GameObject go)
    Parameters
    Type Name Description
    PlayableGraph graph
    GameObject go
    Returns
    Type Description
    Playable

    CreatePlayable(PlayableGraph, GameObject, TimelineClip)

    Constructs a Playable from a TimelineClip.

    Declaration
    protected virtual Playable CreatePlayable(PlayableGraph graph, GameObject gameObject, TimelineClip clip)
    Parameters
    Type Name Description
    PlayableGraph graph

    PlayableGraph that will own the playable.

    GameObject gameObject

    The GameObject that builds the PlayableGraph.

    TimelineClip clip

    The TimelineClip to construct a playable for.

    Returns
    Type Description
    Playable

    A playable that will be set as an input to the Track Mixer playable, or Playable.Null if the clip does not have a valid PlayableAsset

    Remarks

    By default, this method invokes Playable.CreatePlayable, sets animated properties, and sets the speed of the created playable. Override this method to change this default implementation.

    Exceptions
    Type Condition
    System.ArgumentException

    Thrown if the specified PlayableGraph is not valid.

    System.ArgumentNullException

    Thrown if the specified TimelineClip is not valid.

    CreateTrackMixer(PlayableGraph, GameObject, Int32)

    Creates a mixer used to blend playables generated by clips on the track.

    Declaration
    public virtual Playable CreateTrackMixer(PlayableGraph graph, GameObject go, int inputCount)
    Parameters
    Type Name Description
    PlayableGraph graph

    The graph to inject playables into

    GameObject go

    The GameObject that requested the graph.

    System.Int32 inputCount

    The number of playables from clips that will be inputs to the returned mixer

    Returns
    Type Description
    Playable

    A handle to the [[Playable]] representing the mixer.

    Remarks

    Override this method to provide a custom playable for mixing clips on a graph.

    DeleteMarker(IMarker)

    Removes a marker from the current asset.

    Declaration
    public bool DeleteMarker(IMarker marker)
    Parameters
    Type Name Description
    IMarker marker

    The marker instance to be removed.

    Returns
    Type Description
    System.Boolean

    Returns true if the marker instance was successfully removed. Returns false otherwise.

    GatherProperties(PlayableDirector, IPropertyCollector)

    Called by the Timeline Editor to gather properties requiring preview.

    Declaration
    public virtual void GatherProperties(PlayableDirector director, IPropertyCollector driver)
    Parameters
    Type Name Description
    PlayableDirector director

    The PlayableDirector invoking the preview

    IPropertyCollector driver

    PropertyCollector used to gather previewable properties

    Implements
    IPropertyPreview.GatherProperties(PlayableDirector, IPropertyCollector)

    GetAnimationClipHash(AnimationClip)

    Declaration
    protected static int GetAnimationClipHash(AnimationClip clip)
    Parameters
    Type Name Description
    AnimationClip clip
    Returns
    Type Description
    System.Int32

    GetChildTracks()

    The list of subtracks or child tracks attached to this track.

    Declaration
    public IEnumerable<TrackAsset> GetChildTracks()
    Returns
    Type Description
    System.Collections.Generic.IEnumerable<TrackAsset>

    Returns an enumerable list of child tracks owned directly by this track.

    Remarks

    In the case of GroupTracks, this returns all tracks contained in the group. This will return the all subtracks or override tracks, if supported by the track.

    GetClips()

    A list of clips owned by this track

    Declaration
    public IEnumerable<TimelineClip> GetClips()
    Returns
    Type Description
    System.Collections.Generic.IEnumerable<TimelineClip>

    Returns an enumerable list of clips owned by the track.

    GetMarker(Int32)

    Returns the marker at a given position, on the current asset.

    Declaration
    public IMarker GetMarker(int idx)
    Parameters
    Type Name Description
    System.Int32 idx

    The index of the marker to be returned.

    Returns
    Type Description
    IMarker

    The marker.

    Remarks

    The ordering of the markers is not guaranteed.

    GetMarkerCount()

    Returns the number of markers on the current asset.

    Declaration
    public int GetMarkerCount()
    Returns
    Type Description
    System.Int32

    The number of markers.

    GetMarkers()

    Returns an enumerable list of markers on the current asset.

    Declaration
    public IEnumerable<IMarker> GetMarkers()
    Returns
    Type Description
    System.Collections.Generic.IEnumerable<IMarker>

    The list of markers on the asset.

    OnAfterTrackDeserialize()

    Declaration
    protected virtual void OnAfterTrackDeserialize()

    OnBeforeTrackSerialize()

    Declaration
    protected virtual void OnBeforeTrackSerialize()

    OnCreateClip(TimelineClip)

    Called when a clip is created on a track.

    Declaration
    protected virtual void OnCreateClip(TimelineClip clip)
    Parameters
    Type Name Description
    TimelineClip clip

    The timeline clip added to this track

    Remarks

    Use this method to set default values on a timeline clip, or it's PlayableAsset.

    Extension Methods

    TrackAssetExtensions.GetGroup(TrackAsset)
    TrackAssetExtensions.SetGroup(TrackAsset, GroupTrack)
    In This Article
    • Fields
      • m_Clips
    • Properties
      • curves
      • duration
      • end
      • hasClips
      • hasCurves
      • isEmpty
      • isSubTrack
      • locked
      • lockedInHierarchy
      • muted
      • mutedInHierarchy
      • outputs
      • parent
      • start
      • supportsNotifications
      • timelineAsset
    • Methods
      • CalculateItemsHash()
      • CreateClip<T>()
      • CreateCurves(String)
      • CreateDefaultClip()
      • CreateMarker(Type, Double)
      • CreateMarker<T>(Double)
      • CreatePlayable(PlayableGraph, GameObject)
      • CreatePlayable(PlayableGraph, GameObject, TimelineClip)
      • CreateTrackMixer(PlayableGraph, GameObject, Int32)
      • DeleteMarker(IMarker)
      • GatherProperties(PlayableDirector, IPropertyCollector)
      • GetAnimationClipHash(AnimationClip)
      • GetChildTracks()
      • GetClips()
      • GetMarker(Int32)
      • GetMarkerCount()
      • GetMarkers()
      • OnAfterTrackDeserialize()
      • OnBeforeTrackSerialize()
      • OnCreateClip(TimelineClip)
    • Extension Methods
    Back to top
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023