【摘要】:首先创建一个文件夹Animation用来存放GameController文件,在文件夹内右击新建一个Animator Controller。图8-163发现新Tab将PlayerController放到主角身上的Animator组件里面的Controller。图8-173加入函数到Update()图8-174主角移动,播放Move动画又一个bug出现,主角停下来时,还是播放Move动画,因为刚刚的Animator并没有设计从Move状态转为Idle状态的条件。图8-175主动停止,仍在播放Move动画isMoving设置false,再运行游戏,主角就正常的Move和Idle了。
Animation是Unity最早的动画系统,自Unity 5之后引入了Animator,比起Animation前者更加简单,这个游戏我们用Animator来做角色动画。
首先创建一个文件夹Animation用来存放GameController文件,在文件夹内右击新建一个Animator Controller(见图8-162)。

图8-162 创建Animator Controller
双击,发现出现一个新的Tab(见图8-163)。

图8-163 发现新Tab
将PlayerController放到主角身上的Animator组件里面的Controller(见图8-164)。

图8-164 将PlayerController放到主角身上的Animator组件
单击播放按钮,可以看到此时主角已经有Idle状态(见图8-165)。

图8-165 主角有Idle状态
但是Idle状态动画只会播放一次,解决这个问题的方法如图8-166所示。

图8-166 Idle状态动画
找到主角动画,选中Idle状态(见图8-167)。

图8-167 选中Idle状态
单击右上角edit图标(见图8-168)。
选择loopTime选项,之后右下角apply,加入角色移动动画,同Idle一样(见图8-169)。
在idle上右击Idle→Make Transition按钮,连接到Move上(见图8-170)。
选中Parameters标签页,添加一个bool变量isMoving,选中连线(见图8-171)。(www.chuimin.cn)
取消Has Exit Time,将isMoving变量添加到Conditions。打开之前的代码(见图8-172)。

图8-168 勾选loopTime

图8-169 加入角色动画

图8-170 连接到Move

图8-171 添加bool变量

图8-172 Animator脚本
同样定义变量得到组件,在Update()里面加入函数(见图8-173)。
此时运行游戏,主角移动就会播放移动动画了(见图8-174)。

图8-173 加入函数到Update()

图8-174 主角移动,播放Move动画
又一个bug出现,主角停下来时,还是播放Move动画,因为刚刚的Animator并没有设计从Move状态转为Idle状态的条件(见图8-175)。

图8-175 主动停止,仍在播放Move动画
isMoving设置false,再运行游戏,主角就正常的Move和Idle了。
相关推荐