private void AddClip(TakeInfo takeInfo)
{
this.m_ClipAnimations.InsertArrayElementAtIndex(this.m_ClipAnimations.arraySize);
AnimationClipInfoProperties animationClipInfoAtIndex = this.GetAnimationClipInfoAtIndex(this.m_ClipAnimations.arraySize - 1);
animationClipInfoAtIndex.name = this.MakeUniqueClipName(takeInfo.defaultClipName, -1);
this.SetupTakeNameAndFrames(animationClipInfoAtIndex, takeInfo);
animationClipInfoAtIndex.wrapMode = 0;
animationClipInfoAtIndex.loop = false;
animationClipInfoAtIndex.orientationOffsetY = 0f;
animationClipInfoAtIndex.level = 0f;
animationClipInfoAtIndex.cycleOffset = 0f;
animationClipInfoAtIndex.loopTime = false;
animationClipInfoAtIndex.loopBlend = false;
animationClipInfoAtIndex.loopBlendOrientation = false;
animationClipInfoAtIndex.loopBlendPositionY = false;
animationClipInfoAtIndex.loopBlendPositionXZ = false;
animationClipInfoAtIndex.keepOriginalOrientation = false;
animationClipInfoAtIndex.keepOriginalPositionY = true;
animationClipInfoAtIndex.keepOriginalPositionXZ = false;
animationClipInfoAtIndex.heightFromFeet = false;
animationClipInfoAtIndex.mirror = false;
animationClipInfoAtIndex.maskType = ClipAnimationMaskType.CreateFromThisModel;
AvatarMask mask = new AvatarMask();
string[] humanTransforms = null;
SerializedObject serializedObject = animationClipInfoAtIndex.maskTypeProperty.serializedObject;
ModelImporter targetObject = serializedObject.targetObject as ModelImporter;
if ((this.animationType == ModelImporterAnimationType.Human) && !targetObject.isAssetOlderOr42)
{
humanTransforms = AvatarMaskUtility.GetAvatarHumanTransform(serializedObject, targetObject.transformPaths);
if (humanTransforms == null)
{
return;
}
}
AvatarMaskUtility.UpdateTransformMask(mask, targetObject.transformPaths, humanTransforms);
animationClipInfoAtIndex.MaskToClip(mask);
animationClipInfoAtIndex.ClearEvents();
animationClipInfoAtIndex.ClearCurves();
UnityEngine.Object.DestroyImmediate(mask);
}