summaryrefslogtreecommitdiff
path: root/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/AssetUpgrade/TrackUpgrade.cs
diff options
context:
space:
mode:
authorAndrew Lee <alee14498@protonmail.com>2020-04-19 17:19:32 -0400
committerAndrew Lee <alee14498@protonmail.com>2020-04-19 17:19:32 -0400
commitc55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78 (patch)
treeee4d51c7c1d633e11f46453ef1edd3c77c4ef9f7 /Library/PackageCache/com.unity.timeline@1.2.13/Runtime/AssetUpgrade/TrackUpgrade.cs
downloadProject-Sandbox-c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78.tar.gz
Project-Sandbox-c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78.tar.bz2
Project-Sandbox-c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78.zip
Inital commit
Diffstat (limited to 'Library/PackageCache/com.unity.timeline@1.2.13/Runtime/AssetUpgrade/TrackUpgrade.cs')
-rw-r--r--Library/PackageCache/com.unity.timeline@1.2.13/Runtime/AssetUpgrade/TrackUpgrade.cs76
1 files changed, 76 insertions, 0 deletions
diff --git a/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/AssetUpgrade/TrackUpgrade.cs b/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/AssetUpgrade/TrackUpgrade.cs
new file mode 100644
index 0000000..6768199
--- /dev/null
+++ b/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/AssetUpgrade/TrackUpgrade.cs
@@ -0,0 +1,76 @@
+using System;
+using UnityEngine.Serialization;
+
+namespace UnityEngine.Timeline
+{
+ partial class TrackAsset : ISerializationCallbackReceiver
+ {
+ internal enum Versions
+ {
+ Initial = 0,
+ RotationAsEuler = 1,
+ RootMotionUpgrade = 2,
+ AnimatedTrackProperties = 3
+ }
+
+ const int k_LatestVersion = (int)Versions.AnimatedTrackProperties;
+
+ [SerializeField, HideInInspector] int m_Version;
+
+ [Obsolete("Please use m_InfiniteClip (on AnimationTrack) instead.", false)]
+ [SerializeField, HideInInspector, FormerlySerializedAs("m_animClip")]
+ internal AnimationClip m_AnimClip;
+
+ protected virtual void OnBeforeTrackSerialize() {}
+ protected virtual void OnAfterTrackDeserialize() {}
+
+ internal virtual void OnUpgradeFromVersion(int oldVersion) {}
+
+ void ISerializationCallbackReceiver.OnBeforeSerialize()
+ {
+ m_Version = k_LatestVersion;
+
+ //make sure children are correctly parented
+ if (m_Children != null)
+ {
+ for (var i = m_Children.Count - 1; i >= 0; i--)
+ {
+ var asset = m_Children[i] as TrackAsset;
+ if (asset != null && asset.parent != this)
+ asset.parent = this;
+ }
+ }
+
+ OnBeforeTrackSerialize();
+ }
+
+ void ISerializationCallbackReceiver.OnAfterDeserialize()
+ {
+ // Clear the clip cache when a deserialize is performed, or
+ // we can get out of sync when performing Undo
+ m_ClipsCache = null;
+ Invalidate();
+
+ if (m_Version < k_LatestVersion)
+ {
+ UpgradeToLatestVersion(); //upgrade TrackAsset
+ OnUpgradeFromVersion(m_Version); //upgrade derived classes
+ }
+
+ foreach (var marker in GetMarkers())
+ {
+ marker.Initialize(this);
+ }
+
+ OnAfterTrackDeserialize();
+ }
+
+ //fields that are used for upgrading should be put here, ideally as read-only
+ void UpgradeToLatestVersion()
+ {}
+
+ //upgrade code should go into this class
+ static class TrackAssetUpgrade
+ {}
+ }
+}