A game about forced loneliness, made by TACStudios
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}