使用Animator控制动画的切换

为角色添加Animator属性

这个就比较简单了,学过Unity的都知道怎么做,点击角色,在Inspector里面AddComponent就行了。

新建Animator Controller

在自己的Animations文件夹里面右键create->Animator Controller,我们将它命名为Hero Animator Controller,最后将它拖动到角色的Animator 下面的Controller里面。

打开Animator窗体

选中我们刚刚创建的Animator Controller,在Unity顶部点击Windows,选择Animator。出现以下窗体
在这里插入图片描述
Base Layer就是我们编辑动画的地方,箭头表示动画的切换,其中被Entry指向的为默认播放的动画,也就是游戏一运行就播放的动画。将要播放的动画拖进BaseLayer里面,你会发现Entry自动将箭头指向你的动画。因为它认为你第一个添加的动画就是默认播放动画。点击添加的动画,右键选择Make Transition,将会出现一个箭头,这是将箭头拉向要切换的动画,这时两个动画就关联起来了。

左边的Parameters是定义参数的地方,点击加号“+”将会出现下拉选项框。
在这里插入图片描述
在这里我们可以选择需要的参数类型。

举个例子

举个例子:我们现在需要根据角色的移动速度播放动画,当角色不动时播放idel动画,
角色移动速度大于0小于1时播放walk动画,当移动速度大于1时播放run动画。那么,我们现在在Parameters里面新建一个float类型的speed参数。然后点击BaseLayer里面的箭头,在Inspector的conditions里面点击“+”号,出现以下界面
在这里插入图片描述
这时会发现我们定义的参数speed出现在conditions里面,它有两个可选项,Creater:大于,
Less:小于。我们选择creater,在右边的框里面写0,代表当speed>0的时候切换动画。当然这样还是没法实现动画的切换的,因为Unity不知道你的speed怎么改变的啊。所以我们最后要用到脚本了,在编写脚本的时候,我们在需要切换动画的地方使用函数this.GetComponent.SetFloat(string id,float value),由于我们的参数是speed,所以我们这么写this.GetComponent.SetFloat(“speed”,1f)。这代表我们将speed的值变为1f,然后unity会判断speed>0,最终触发动画的切换

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值