虽然我们可以使用Unity中的Inspector简单地编辑导入动画文件的“循环时间”参数,但当动画文件很多时,这个过程可能会很烦人。是否有一种简单的方法可以为脚本中的多个动画文件设置动画参数,例如“循环时间”或“将旋转烘焙为姿势”?
选择多个动画文件并在检查器中编辑它们是不可能的,因为每个文件包含不同的动画,并且 Unity 不允许同时编辑它们。
对于这个问题,我们可以使用以下特定于编辑器的代码来设置导入动画所需的属性:
foreach (AnimationClip clip in anim.runtimeAnimatorController.animationClips)
{
AnimationClipSettings settings = AnimationUtility.GetAnimationClipSettings(clip);
if (settings.loopTime == false)
{
settings.loopTime = true;
settings.keepOriginalOrientation = true;
settings.keepOriginalPositionXZ = true;
settings.keepOriginalPositionY = true;
settings.loopBlend = true;
settings.loopBlendOrientation = true;
settings.loopBlendPositionXZ = true;
settings.loopBlendPositionY = true;
AnimationUtility.SetAnimationClipSettings(clip, settings);
}
}
foreach (AnimationClip ac in anim.runtimeAnimatorController.animationClips)
{
ac.wrapMode = WrapMode.Loop;
}
请注意,调用它一次将设置属性,然后您可以在构建中排除此代码(由于AnimationUtility,它仅在编辑器中运行)。