下面是一段分解animation的代码,具体的接口功能参见api
static AnimationClip RebuildAniClip(AnimationClip aniClip, bool bUseScale)
{
AnimationClip newClip = null;
EditorCurveBinding[] szClipCurveBinding = AnimationUtility.GetCurveBindings( aniClip );
if ( szClipCurveBinding != null )
{
newClip = new AnimationClip();
newClip.name = aniClip.name;
for ( int i = 0; i < szClipCurveBinding.Length; ++i )
{
EditorCurveBinding clipCurveBinding = szClipCurveBinding[i];
if ( !clipCurveBinding.propertyName.Contains( "LocalScale" ) || bUseScale )
{
AnimationCurve clipAniCurve = AnimationUtility.GetEditorCurve( aniClip, clipCurveBinding );
newClip.SetCurve( clipCurveBinding.path, clipCurveBinding.type, clipCurveBinding.propertyName, clipAniCurve );
}
}
}
return newClip;
}