Nav apraksta
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

AnimationPlayableAssetUpgrade.cs 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using System;
  2. namespace UnityEngine.Timeline
  3. {
  4. partial class AnimationPlayableAsset : ISerializationCallbackReceiver
  5. {
  6. enum Versions
  7. {
  8. Initial = 0,
  9. RotationAsEuler = 1,
  10. }
  11. static readonly int k_LatestVersion = (int)Versions.RotationAsEuler;
  12. [SerializeField, HideInInspector] int m_Version;
  13. [SerializeField, Obsolete("Use m_RotationEuler Instead", false), HideInInspector]
  14. private Quaternion m_Rotation = Quaternion.identity; // deprecated. now saves in euler angles
  15. /// <summary>
  16. /// Called before Unity serializes this object.
  17. /// </summary>
  18. void ISerializationCallbackReceiver.OnBeforeSerialize()
  19. {
  20. m_Version = k_LatestVersion;
  21. }
  22. /// <summary>
  23. /// Called after Unity deserializes this object.
  24. /// </summary>
  25. void ISerializationCallbackReceiver.OnAfterDeserialize()
  26. {
  27. if (m_Version < k_LatestVersion)
  28. {
  29. OnUpgradeFromVersion(m_Version); //upgrade derived classes
  30. }
  31. }
  32. void OnUpgradeFromVersion(int oldVersion)
  33. {
  34. if (oldVersion < (int)Versions.RotationAsEuler)
  35. AnimationPlayableAssetUpgrade.ConvertRotationToEuler(this);
  36. }
  37. static class AnimationPlayableAssetUpgrade
  38. {
  39. public static void ConvertRotationToEuler(AnimationPlayableAsset asset)
  40. {
  41. #pragma warning disable 618
  42. asset.m_EulerAngles = asset.m_Rotation.eulerAngles;
  43. #pragma warning restore 618
  44. }
  45. }
  46. }
  47. }