ue3d如何实现Unity运行动画

如何实现Unity运行动画

分类:

本案例预制 Unity 场景有一个带有空闲动画的播放器,运行功能其实可以随时使用,通过制作一个脚本来管理从 Mixamo 下载的角色运行动画和空闲的过渡。

ue3d - 如何实现Unity运行动画

首先,访问了 Mixamo 网站并下载一个运行动画,角色模型可以换成你自己喜欢的就行。

ue3d - 如何实现Unity运行动画

将下载下来的资产保存在项目中,选择包并将绑定动画类型设置为人形(Humanoid),并在包中复制运行动画。

ue3d - 如何实现Unity运行动画

然后选择动画并检查循环时间(Loop Time)选项。

ue3d - 如何实现Unity运行动画

在播放器动画控制器中,添加运行动画,创建了一个名为 speed 的浮点参数并创建了 2 个过渡。从怠速变为运行的条件是,如果速度大于 0.1 则变为运行,如果小于 0.1 则变为怠速。

ue3d - 如何实现Unity运行动画

接着创建一个名为播放器动画的新脚本并将其添加到播放器中,以便控制俩者的过渡。

在脚本中,有一个变量来保存对 _animator 控制器组件的引用,在 start 方法中使用函数 GetComponentInChildren() 对其进行初始化。

在更新方法中,得到了水平轴,将这个轴的绝对值设置为动画器中的参数速度。然后根据方向翻转角色,只需检查水平轴是否不同于 0,如果是,更改玩家的 transform.localScale 中的 z 值。

public class PlayerAnimation : MonoBehaviour
{
    private Animator _anim;
    // 在第一次帧更新之前开始调用
    void Start()
    {
        _anim = GetComponentInChildren<Animator>();
    }
    // 每帧调用一次更新
    void Update()
    {
         // 获取水平输入的绝对值
         float h = Input. GetAxisRaw("Horizontal");
         _anim. SetFloat("Speed",Mathf.Abs( h));
         // 翻转角色
         if (h != 0)
         {
             transform.localScale = new Vector3(3,3,h*3);
         }
    }
}

到这里就已经制作完成了,可在 Unity 播放器中运行动画进行测试该角色。

ue3d - 如何实现Unity运行动画

相关信息

  • 类型:知识
  • 字数:423
  • 字符:1462
  • 适用软件:Unity
  • 说明:无
  • 编号:91769

热门内容

提示:3D天堂作为服务提供者,尊重网络版权及知识产权,对某些行为的发生不具备充分的监控能力,若无意间侵犯到您的权利,请 联系我们,我们会在收到信息后尽快给予处理。

本站文章版权归本站自创作者所有,未经允许不得转载!