54 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| 
 | |
| namespace UnityEngine.Timeline
 | |
| {
 | |
|     partial class AnimationPlayableAsset : ISerializationCallbackReceiver
 | |
|     {
 | |
|         enum Versions
 | |
|         {
 | |
|             Initial = 0,
 | |
|             RotationAsEuler = 1,
 | |
|         }
 | |
|         static readonly int k_LatestVersion = (int)Versions.RotationAsEuler;
 | |
|         [SerializeField, HideInInspector] int m_Version;
 | |
| 
 | |
|         [SerializeField, Obsolete("Use m_RotationEuler Instead", false), HideInInspector]
 | |
|         private Quaternion m_Rotation = Quaternion.identity;  // deprecated. now saves in euler angles
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Called before Unity serializes this object.
 | |
|         /// </summary>
 | |
|         void ISerializationCallbackReceiver.OnBeforeSerialize()
 | |
|         {
 | |
|             m_Version = k_LatestVersion;
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Called after Unity deserializes this object.
 | |
|         /// </summary>
 | |
|         void ISerializationCallbackReceiver.OnAfterDeserialize()
 | |
|         {
 | |
|             if (m_Version < k_LatestVersion)
 | |
|             {
 | |
|                 OnUpgradeFromVersion(m_Version); //upgrade derived classes
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         void OnUpgradeFromVersion(int oldVersion)
 | |
|         {
 | |
|             if (oldVersion < (int)Versions.RotationAsEuler)
 | |
|                 AnimationPlayableAssetUpgrade.ConvertRotationToEuler(this);
 | |
|         }
 | |
| 
 | |
|         static class AnimationPlayableAssetUpgrade
 | |
|         {
 | |
|             public static void ConvertRotationToEuler(AnimationPlayableAsset asset)
 | |
|             {
 | |
| #pragma warning disable 618
 | |
|                 asset.m_EulerAngles = asset.m_Rotation.eulerAngles;
 | |
| #pragma warning restore 618
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 |