35 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| 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;
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 |