| 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; |
|
|
| |
| 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() |
| { |
| |
| |
| m_ClipsCache = null; |
| Invalidate(); |
|
|
| if (m_Version < k_LatestVersion) |
| { |
| UpgradeToLatestVersion(); |
| OnUpgradeFromVersion(m_Version); |
| } |
|
|
| foreach (var marker in GetMarkers()) |
| { |
| marker.Initialize(this); |
| } |
|
|
| OnAfterTrackDeserialize(); |
| } |
|
|
| |
| void UpgradeToLatestVersion() |
| { } |
|
|
| |
| static class TrackAssetUpgrade |
| { } |
| } |
| } |
|
|