Maze / Library /PackageCache /com.unity.timeline@1.6.5 /Editor /Animation /AnimationClipExtensions.cs
| 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; | |
| } | |
| } | |
| } | |