You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.6 KiB
55 lines
1.6 KiB
using System; |
|
|
|
namespace UnityEngine.Timeline |
|
{ |
|
/// <summary> |
|
/// Use Marker as a base class when creating a custom marker. |
|
/// </summary> |
|
/// <remarks> |
|
/// A marker is a point in time. |
|
/// </remarks> |
|
public abstract class Marker : ScriptableObject, IMarker |
|
{ |
|
[SerializeField, TimeField, Tooltip("Time for the marker")] double m_Time; |
|
|
|
/// <inheritdoc/> |
|
public TrackAsset parent { get; private set; } |
|
|
|
/// <inheritdoc/> |
|
/// <remarks> |
|
/// The marker time cannot be negative. |
|
/// </remarks> |
|
public double time |
|
{ |
|
get { return m_Time; } |
|
set { m_Time = Math.Max(value, 0); } |
|
} |
|
|
|
/// <inheritdoc/> |
|
void IMarker.Initialize(TrackAsset parentTrack) |
|
{ |
|
// We only really want to update the parent when the object is first deserialized |
|
// If not a cloned track would "steal" the source's markers |
|
if (parent == null) |
|
{ |
|
parent = parentTrack; |
|
try |
|
{ |
|
OnInitialize(parentTrack); |
|
} |
|
catch (Exception e) |
|
{ |
|
Debug.LogError(e.Message, this); |
|
} |
|
} |
|
} |
|
|
|
/// <summary> |
|
/// Override this method to receive a callback when the marker is initialized. |
|
/// </summary> |
|
/// <param name="aPent">The track that contains the marker.</param> |
|
public virtual void OnInitialize(TrackAsset aPent) |
|
{ |
|
} |
|
} |
|
}
|
|
|