使用脚本在Unity中启用导入动画的循环时间

问题描述 投票:0回答:1

虽然我们可以使用Unity中的Inspector简单地编辑导入动画文件的“循环时间”参数,但当动画文件很多时,这个过程可能会很烦人。是否有一种简单的方法可以为脚本中的多个动画文件设置动画参数,例如“循环时间”或“将旋转烘焙为姿势”?

选择多个动画文件并在检查器中编辑它们是不可能的,因为每个文件包含不同的动画,并且 Unity 不允许同时编辑它们。

c# loops unity-game-engine animation time
1个回答
0
投票

对于这个问题,我们可以使用以下特定于编辑器的代码来设置导入动画所需的属性:

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,它仅在编辑器中运行)。

© www.soinside.com 2019 - 2024. All rights reserved.