Unity Mecanim 如何在按键时播放动画

MecanimUnity 的状态驱动工具,为开发人员提供高级动画控制和功能丰富的编辑器。

Mecanim 的突出功能是动画混合和动画重定向。

动画混合是在动画之间进行平滑过渡的自动过程。

动画重定向是重新利用现有动画以在多个角色装备之间工作的过程,从而无需为每个新角色创建新动画。

在本教程中,我将展示如何使用 Mecanim 对立方体进行动画制作并在按键上播放动画。

脚步

要在 Unity 中对立方体进行动画处理,请按照以下步骤操作:

  • 创建新的立方体(游戏对象 -> 3D 对象 -> 立方体)

  • 选择立方体然后打开动画窗口(窗口 -> 动画 -> 动画)
  • 在“动画”窗口中单击 "Create",这将创建一个新的动画、一个新的动画器控制器,并将一个动画器组件附加到多维数据集。
  • 为新动画命名 "SpinAnimation"

  • 在动画窗口中单击添加属性 -> 变换 -> 旋转
  • 该动画将有 2 帧:开始帧和结束帧。
  • 对于第一帧,我们将旋转设置为 (0, 0, 0)

  • 对于最后一帧,我们将旋转设置为 (0, 360, 0)

动画已准备就绪。

提示:要创建更多动画,只需单击动画窗口中的动画名称,然后单击 "Create new Clip..."。

要设置 Mecanim Animator 控制器,请按照以下步骤操作:

  • 双击使用动画创建的 Animator Controller 资源

  • 将出现标题为 "Animator" 的新窗口,其外观应如下所示:

  • 您会注意到有一个箭头从 "Entry" 指向 "SpinAnimation",这意味着动画将在场景启动后立即播放,但这不是我们想要的,我们只想在按键时播放动画。

由于 Mecanim 需要有一个入口动画,所以我们可以做的是创建一个新的 Empty 状态并将其设为 Entry:

  • 右键单击 Animator 窗口 -> 创建状态 -> 清空:

  • 选择Entry state -> 右键单击​​它 -> Set StateMachine Default State,然后指向"New State":

剩下要做的最后一件事是转换到 SpinAnimation,但我们只想在满足特定条件时进行转换,此时“参数”选项卡就位:

  • 单击 Animator 窗口中的“参数”选项卡,然后单击 (+) 符号:

你会注意到有多种类型可用,但现在我们选择 Trigger,它与 bool 类似,但与 bool 不同,一旦动画完成,它会自动设置为 false,对于一次性动画很有用:

  • 命名参数 "spinTrigger"

  • 最后选择 "Any State" -> 右键单击​​它 -> Make Transition,然后指向 SpinAnimation:

  • 单击转换箭头,然后在检查器视图中的“条件”下单击 (+) 并确保选择了 spinTrigger 参数

  • 默认情况下,使用 Unity 创建的动画启用了循环,但由于我们只想播放动画一次,因此我们需要做的是在项目视图中选择动画剪辑,然后取消选中循环时间复选框:

为了能够从脚本控制 Mecanim 参数,我们需要使用特殊函数,请检查下面的代码:

  • 创建一个新脚本,将其命名为 "AnimationTest",删除其中的所有内容,然后将以下代码粘贴到其中:

动画测试.cs

using UnityEngine;

public class AnimationTest : MonoBehaviour
{

    Animator animator;

    // Start is called before the first frame update
    void Start()
    {
        //Get Animator component
        animator = GetComponent<Animator>();
    }

    // Update is called once per frame
    void Update()
    {
        //Play spin animation on key press
        if (Input.GetKeyDown(KeyCode.Q))
        {
            animator.SetTrigger("spinTrigger");
        }
    }
}
  • 使用 Animator 组件将 AnimationTest.cs 脚本附加到 Cube:

现在我们来测试一下:

Sharp Coder 视频播放器

一切按预期进行,按 Q 播放动画。

推荐文章
在 Unity 中构建交互式菜单系统
如何在 Unity 中在地形上绘制树木
如何将动画导入到 Unity
在 Unity 中为您的环境选择正确的天空盒
保护 Unity 游戏免遭盗版的策略
如何在 Unity 中制作受 FNAF 启发的游戏
讲故事在 Unity 游戏开发中的重要性