summaryrefslogtreecommitdiff
path: root/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Events/Marker.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Events/Marker.cs')
-rw-r--r--Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Events/Marker.cs53
1 files changed, 53 insertions, 0 deletions
diff --git a/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Events/Marker.cs b/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Events/Marker.cs
new file mode 100644
index 0000000..2f12cd7
--- /dev/null
+++ b/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Events/Marker.cs
@@ -0,0 +1,53 @@
+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)
+ {
+ }
+ }
+}