12345678910111213141516171819202122232425262728293031323334 |
- using System;
- using UnityEngine;
-
- namespace UnityEditor.Timeline
- {
- static class AnimationClipExtensions
- {
- public static UInt64 ClipVersion(this AnimationClip clip)
- {
- if (clip == null)
- return 0;
-
- var info = AnimationClipCurveCache.Instance.GetCurveInfo(clip);
- var version = (UInt32)info.version;
- var count = (UInt32)info.curves.Length;
- var result = (UInt64)version;
- result |= ((UInt64)count) << 32;
- return result;
- }
-
- public static CurveChangeType GetChangeType(this AnimationClip clip, ref UInt64 curveVersion)
- {
- var version = clip.ClipVersion();
- var changeType = CurveChangeType.None;
- if ((curveVersion >> 32) != (version >> 32))
- changeType = CurveChangeType.CurveAddedOrRemoved;
- else if (curveVersion != version)
- changeType = CurveChangeType.CurveModified;
-
- curveVersion = version;
- return changeType;
- }
- }
- }
|