GlobalGameJame/Library/PackageCache/com.unity.timeline@1.2.10/Runtime/Events/Marker.cs
JonatanRek bea2dce063 Initial
test
2020-01-31 16:10:04 +01:00

54 lines
1.5 KiB
C#

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); }
}
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>
public virtual void OnInitialize(TrackAsset aPent)
{
}
}
}