Singularity/Library/PackageCache/com.unity.timeline@1.6.4/Editor/Animation/AnimationClipExtensions.cs
2024-05-06 11:45:45 -07:00

35 lines
1.0 KiB
C#

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;
}
}
}