为角色添加Animator属性

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

新建Animator Controller

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

打开Animator窗体

选中我们刚刚创建的Animator Controller,在Unity顶部点击Windows,选择Animator。出现以下窗体

unity Animator 动画音效 unity animator动画切换_Animator


Base Layer就是我们编辑动画的地方,箭头表示动画的切换,其中被Entry指向的为默认播放的动画,也就是游戏一运行就播放的动画。将要播放的动画拖进BaseLayer里面,你会发现Entry自动将箭头指向你的动画。因为它认为你第一个添加的动画就是默认播放动画。点击添加的动画,右键选择Make Transition,将会出现一个箭头,这是将箭头拉向要切换的动画,这时两个动画就关联起来了。左边的Parameters是定义参数的地方,点击加号“+”将会出现下拉选项框。

unity Animator 动画音效 unity animator动画切换_右键_02


在这里我们可以选择需要的参数类型。

举个例子

举个例子:我们现在需要根据角色的移动速度播放动画,当角色不动时播放idel动画,

角色移动速度大于0小于1时播放walk动画,当移动速度大于1时播放run动画。那么,我们现在在Parameters里面新建一个float类型的speed参数。然后点击BaseLayer里面的箭头,在Inspector的conditions里面点击“+”号,出现以下界面

unity Animator 动画音效 unity animator动画切换_右键_03


这时会发现我们定义的参数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,最终触发动画的切换