关于Unity动画状态机Animator使⽤教程
⽬录
⼀、前⾔
⼆、Animator组件
三、Animator Controller⽂件
四、Animation Clip⽂件
五、 状态机的状态(State)
1、Any State状态
2、Entry状态
3、Exit状态
六、动画状态的属性
七、状态间的过渡关系(Transitions)
⼋、添加状态控制参数
九、编辑切换状态的条件
⼗、代码中控制状态
⼗⼀、检查动画状态
⽅法1、AnimatorStateInfo
⽅法2、继承StateMachineBehaviour
⼗⼆、控制播放速度
⼗三、注意事项
1 取消勾选
2 动作循环。
3.⼀般我们要的都是⽴即切换,所以这⾥ 不要勾选
⼗四、补充
1、Mirror
2、Solo与Mute
⼀、前⾔
Unity可以⽤两种⽅式控制动画
1 Animation,这种⽅式简单,直接 Play(“Idle”)或者CorssFade(“Idle”)就可以播放动画;
2 Animator,Unity5.x之后推荐使⽤这种⽅式,因为⾥⾯可以加上混合动画,让动画切换更加平滑。
⼆、Animator组件
你通过Animation窗⼝(快捷键是Ctrl+6)中的Create New Clip创建Animation时,⼀个 Animator已经悄⽆声息地出现在了对应的GameObject上
三、Animator Controller⽂件
在第⼀步中⽣成的Animator组件上, 第⼀个Controller参数在创建Animator时已经被赋值了,可以点击该值,并切换到Project窗⼝下,会发现这个 Controller对应的⽂件是⼀个.controller⽂件。
Animator Controller就是动画控制器,负责在不同的动画间切换,属于制作动画效果的必备原件。
注意,你也可以通过GameObject上的 Add Component添加⼀个崭新的 Animator组件,但是这种情况下 Animator的 Controller参数默认为空,所以需要我们⼿动将事先准备好的.controller⽂件拖拽到该参数位置,动画控制器才能正常⼯作。
四、Animation Clip⽂件
双击 .controller"⽂件,会弹出⼀个 Animator窗⼝,该窗⼝中显⽰的就是动画控制器⽂件中的所有内容(也可以在顶部的⼯具栏通过 Window - Animator打开这个界⾯)
在Project窗⼝右键单击,选择Create->Animation创建Animation Clip(.anim⽂件)
再把.anim⽂件拖拽进Animator窗⼝,作为Animator Controller的⼀个状态(State)
通过Animator创建出来的Animation Clip⽆法直接通过挂Animation组件进⾏播放,如果强⾏播放,Console会报⼀条警告信息:The AnimationClip 'XXX' used by the Animation component 'XXX' must be marked as Legacy.
以及⼀条提⽰信息
Default clip could not be found in attached animations list
如下
unity 教程
为什么呢?
如果我们把Inspector切换为Debug模式
可以看到Animation Clip有个Legacy勾选框
Legacy是遗产的意思,也就是传统的通过Animation组件来播放Animation Clip的做法,如果使⽤Animation组件来播放Animation Clip,则必须把Legacy勾选上,不过这种⽅式已经是过时的做法,推荐使⽤Animator来播放Animation Clip。
五、 状态机的状态(State)
每个Animator Controller都会⾃带三个状态:Any State, Entry和 Exit。
1、Any S t at e状态
表⽰任意状态的特殊状态。例如我们如果希望⾓⾊在任何状态下都有可能切换到死亡状态,那么Any State就可以帮我们做到。当你发现某个状态可以从任何状态以相同的条件跳转到时,那么你就可以⽤
Any State来简化过渡关系。
2、Ent ry状态
表⽰状态机的⼊⼝状态。当我们为某个GameObject添加上Animator组件时,这个组件就会开始发挥它的作⽤。
如果Animator Controller控制多个Animation的播放,那么默认情况下Animator组件会播放哪个动画呢? 由Entry来决定的。
但是Entry本⾝并不包含动画,⽽是指向某个带有动画的状态,并设置其为默认状态。被设置为默认状态的状态会显⽰为 橘黄⾊。
当然,你可以随时在任意⼀个状态上通过 ⿏标右键->Set as Layer Default State更改默认状态。
记住, Entry在Animator组件被激活后 ⽆条件 跳转到默认状态,并且每个Layer有且仅有⼀个默认状态。
3、Exi t状态
表⽰状态机的出⼝状态,以红⾊标识。如果你的动画控制器只有⼀层,那么这个状态可能并没有什么卵⽤。但是当你需要从⼦状态机中返回到上⼀层(Layer)时,把状态指向Exit就可以了。
六、动画状态的属性
我们可以选中某个⾃定义状态,并在Inspector窗⼝下观察它具有的属性

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。