A game about forced loneliness, made by TACStudios
at master 122 lines 5.7 kB view raw
1using System; 2using System.ComponentModel; 3 4namespace UnityEngine.Timeline 5{ 6 partial class AnimationTrack 7 { 8 // 649 is value is only assigned to. they can be updated from old files being serialized 9#pragma warning disable 649 10 //fields that are used for upgrading should be put here, ideally as read-only 11 [SerializeField, Obsolete("Use m_InfiniteClipOffsetEulerAngles Instead", false), HideInInspector] 12 Quaternion m_OpenClipOffsetRotation = Quaternion.identity; 13 14 [SerializeField, Obsolete("Use m_RotationEuler Instead", false), HideInInspector] 15 Quaternion m_Rotation = Quaternion.identity; 16 17 [SerializeField, Obsolete("Use m_RootTransformOffsetMode", false), HideInInspector] 18 bool m_ApplyOffsets; 19#pragma warning restore 649 20 21 /// <summary> 22 /// Translation offset of a track in infinite mode. 23 /// This property is obsolete. Use <see cref="UnityEngine.Timeline.AnimationTrack.infiniteClipOffsetPosition"/> instead. 24 /// </summary> 25 [EditorBrowsable(EditorBrowsableState.Never)] 26 [Obsolete("openClipOffsetPosition has been deprecated. Use infiniteClipOffsetPosition instead. (UnityUpgradable) -> infiniteClipOffsetPosition", true)] 27 public Vector3 openClipOffsetPosition 28 { 29 get { return infiniteClipOffsetPosition; } 30 set { infiniteClipOffsetPosition = value; } 31 } 32 33 /// <summary> 34 /// Rotation offset of a track in infinite mode. 35 /// This property is obsolete. Use <see cref="UnityEngine.Timeline.AnimationTrack.infiniteClipOffsetRotation"/> instead. 36 /// </summary> 37 [EditorBrowsable(EditorBrowsableState.Never)] 38 [Obsolete("openClipOffsetRotation has been deprecated. Use infiniteClipOffsetRotation instead. (UnityUpgradable) -> infiniteClipOffsetRotation", true)] 39 public Quaternion openClipOffsetRotation 40 { 41 get { return infiniteClipOffsetRotation; } 42 set { infiniteClipOffsetRotation = value; } 43 } 44 45 /// <summary> 46 /// Euler angle representation of the rotation offset of the track when in infinite mode. 47 /// This property is obsolete. Use <see cref="UnityEngine.Timeline.AnimationTrack.infiniteClipOffsetEulerAngles"/> instead. 48 /// </summary> 49 [EditorBrowsable(EditorBrowsableState.Never)] 50 [Obsolete("openClipOffsetEulerAngles has been deprecated. Use infiniteClipOffsetEulerAngles instead. (UnityUpgradable) -> infiniteClipOffsetEulerAngles", true)] 51 public Vector3 openClipOffsetEulerAngles 52 { 53 get { return infiniteClipOffsetEulerAngles; } 54 set { infiniteClipOffsetEulerAngles = value; } 55 } 56 57 /// <summary> 58 /// Saved state of pre-extrapolation for clips converted to infinite mode. 59 /// This property is obsolete. Use <see cref="UnityEngine.Timeline.AnimationTrack.infiniteClipPreExtrapolation"/> instead. 60 /// </summary> 61 [EditorBrowsable(EditorBrowsableState.Never)] 62 [Obsolete("openClipPreExtrapolation has been deprecated. Use infiniteClipPreExtrapolation instead. (UnityUpgradable) -> infiniteClipPreExtrapolation", true)] 63 public TimelineClip.ClipExtrapolation openClipPreExtrapolation 64 { 65 get { return infiniteClipPreExtrapolation; } 66 set { infiniteClipPreExtrapolation = value; } 67 } 68 69 /// <summary> 70 /// Saved state of post-extrapolation for clips converted to infinite mode. 71 /// This property is obsolete. Use <see cref="UnityEngine.Timeline.AnimationTrack.infiniteClipPostExtrapolation"/> instead. 72 /// </summary> 73 [EditorBrowsable(EditorBrowsableState.Never)] 74 [Obsolete("openClipPostExtrapolation has been deprecated. Use infiniteClipPostExtrapolation instead. (UnityUpgradable) -> infiniteClipPostExtrapolation", true)] 75 public TimelineClip.ClipExtrapolation openClipPostExtrapolation 76 { 77 get { return infiniteClipPostExtrapolation; } 78 set { infiniteClipPostExtrapolation = value; } 79 } 80 81 internal override void OnUpgradeFromVersion(int oldVersion) 82 { 83 if (oldVersion < (int)Versions.RotationAsEuler) 84 AnimationTrackUpgrade.ConvertRotationsToEuler(this); 85 if (oldVersion < (int)Versions.RootMotionUpgrade) 86 AnimationTrackUpgrade.ConvertRootMotion(this); 87 if (oldVersion < (int)Versions.AnimatedTrackProperties) 88 AnimationTrackUpgrade.ConvertInfiniteTrack(this); 89 } 90 91 // 612 is Property is Obsolete 92 // 618 is Field is Obsolete 93#pragma warning disable 612, 618 94 static class AnimationTrackUpgrade 95 { 96 public static void ConvertRotationsToEuler(AnimationTrack track) 97 { 98 track.m_EulerAngles = track.m_Rotation.eulerAngles; 99 track.m_InfiniteClipOffsetEulerAngles = track.m_OpenClipOffsetRotation.eulerAngles; 100 } 101 102 public static void ConvertRootMotion(AnimationTrack track) 103 { 104 track.m_TrackOffset = TrackOffset.Auto; // loaded tracks should use legacy mode 105 106 // reset offsets if not applied 107 if (!track.m_ApplyOffsets) 108 { 109 track.m_Position = Vector3.zero; 110 track.m_EulerAngles = Vector3.zero; 111 } 112 } 113 114 public static void ConvertInfiniteTrack(AnimationTrack track) 115 { 116 track.m_InfiniteClip = track.m_AnimClip; 117 track.m_AnimClip = null; 118 } 119 } 120#pragma warning restore 612, 618 121 } 122}