summaryrefslogtreecommitdiff
path: root/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/AssetUpgrade/ClipUpgrade.cs
blob: 20f3dfd3a41e84658eedfa9cbdc54a73f6bf5168 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
namespace UnityEngine.Timeline
{
    partial class TimelineClip
    {
        enum Versions
        {
            Initial = 0,
            ClipInFromGlobalToLocal = 1
        }
        const int k_LatestVersion = (int)Versions.ClipInFromGlobalToLocal;
        [SerializeField, HideInInspector] int m_Version;

        //fields that are used for upgrading should be put here, ideally as read-only

        void UpgradeToLatestVersion()
        {
            if (m_Version < (int)Versions.ClipInFromGlobalToLocal)
            {
                TimelineClipUpgrade.UpgradeClipInFromGlobalToLocal(this);
            }
        }

        static class TimelineClipUpgrade
        {
            // version 0->1, clipIn move from global to local
            public static void UpgradeClipInFromGlobalToLocal(TimelineClip clip)
            {
                // case 936751 -- clipIn was serialized in global, not local offset
                if (clip.m_ClipIn > 0 && clip.m_TimeScale > float.Epsilon)
                    clip.m_ClipIn *= clip.m_TimeScale;
            }
        }
    }
}