开始
到目前为止我们只是学习如何处理像ZombieWalk和CatSpawn这样的动画片段。第一部分中我们知道Unity将一个动画组件附加到你的游戏对象以便播放这些片段,但是动画器如何知道播放那个片段呢?为此,在层次中选择猫,并在查看器中查看动画器组件。控制器域中设置一个叫猫的对象名,如下所示:
此对象是一个动画器控制器,Unity在猫的第一个动画片段创建的时候就创建好了,它可以用来决定播放哪个动画。
注意:动画器包含一些你可以在查看器中编辑的属性,但是在此教程中我们不会处理相关操作,你可以在Unity的动画器文档中自己学习。
如下图所示,在项目浏览器中的动画文件夹中包含一个叫猫的控制器,也有一个叫僵尸的控制器,后一个是Unity为僵尸游戏而对象创建的。注意:虽然Unity自动创建这些动画器控制器,你也可以在Unity菜单中手动选择Assets\create\AnimatorController来创建。
通过选择Window\Animator打开动画器视图,不要被类似名字干扰你:这个视图跟你之前使用的动画视图不同哦。
在层次中选择猫来查看动画器视图中的动画器控制器,如下所示:
现在,分别忽略左上和左下角叫图层和参数的区域。查看下不同矩形填充的视图。
注意:你可以拖拽这些矩形来随意管理它们,如果你的屏幕效果跟上图不同也不要奇怪哦。
你所看到的是一个状态机的状态,它们决定哪个动画片段应该运行在猫上面。如果你从来没听说过什么是状态机,可以认为它就是一些可能的状态或者条件。在任何给定时间,机器都是处于这些已知的状态,它包括用来决定状态转换的规则。
注意:很多状态机都是有限状态机,意味着它们在同一个时刻只能是一个状态。从技术上来说,动画器控制器定义的状态机不是有限的,因为在状态转换期间有不止一个状态处于激活状态。不久之后我们会学习更多的转换。
除了那个叫任意状态的之外,其他的矩形分别表示一个动画片段,之后我们会讲解。
橘色的矩形表示默认状态,如下图说是,我们可以说它是动画器控制器开始运行的状态。
Unity会默认设置动画控制器相关的首个动画片段为默认状态。因为你是有序创建猫的片段的,Unity会正确设置CatSpawn为默认动画。然而如果你想赋值一个不同的默认状态,可以右击动画器视图中的新状态,之后从上面的弹出菜单中选择设为默认即可。
下面图片展示了如何手动设置CatSpawn为默认状态。
动画器视图现在还是可见的,可以播放你的场景。注意蓝色的进度条会在CatSpawn状态底部出现。此条表示状态机任何给定帧你的猫所处的确切位置。
如你所示,这个猫在Cats动画里不停的跑,从来没有移动到下一个状态。
注意:如果你没有看到此蓝色条,确保你在层次视图中选择了猫哦。
此外我们还需要为动画器控制器提供状态间切换所需要的规则,现在就需要好好讲解一下状态转换了。