前言
在Unity里,我们可以自己制作动画效果, 亦或是使用别人制作好的动画素材,为模型和UI赋予活力。然而,通常情况下,一个单独的动画(即Animation Clip)可能无法很好地达到我们期望的效果,所以这时Animator Controller就能发挥其用武之地,帮助我们在合适的时间触发合适的动画,而不是在一个动画效果上无限循环。看完本篇文章,你应该就可以自己动手做一个具有静止,跳跃,奔跑等多个动作的角色,并可以在满足条件时触发相应的效果。
如果你对如何制作一个简单的动画(Animation Clip)还不是很熟悉,可以先去复习一下我之前写的Animation系列博文。
- Unity/Animation – 创建Animation Clip
- Unity/Animation – 调节Animation Curves
- Unity/Animation – 添加动画事件(Animation Events)
Animator Controller工作原理
Animator Controller, 个人翻译为动画控制器,负责在不同的动画间切换,属于制作动画效果的必备原件。如果看过 Unity/Animation – 创建Animation Clip,你可能还记得在我们为一个GameObject创建动画时,Unity会自动帮我们生成一个Animation Clip和一个Animator Controller。因为我们之前只用到了一个动画效果,所以Animator Controller就没有进入我们的视线。在这里,我们有必要再次强调一下Animator Controller是如何生效的。
1. Animator组件
在Unity中,一个最基本的原则就是 想要GameObject实现某种功能,就要在它上面附加相应的组件。所以为了让一个GameObject拥有动画效果,相应的动画组件是必不可少的,在Unity,这个组件已经被定义好了,叫做 Animator。所以当你通过Animation窗口(还记得吗?快捷键是 Ctrl+6
)中的 Create New Clip 创建Animation时,一个 Animator 已经悄无声息地出现在了对应的GameObject上。
2. Animator Controller文件
在第一步中生成的Animator组件上, 有很多个让你头疼的参数,但不用担心,大部分情况下,你只会用到第一个,即 Controller 参数。不出意外的话,以上述方法创建的Animator已经被赋值了,你可以点击该值,并切换到Project窗口下,便会发现这个 Controller 对应的文件是一个 .controller 文件。它就是本篇文章的主角,Animator Controller的真面目。