Unity 官方教程 Survival Shooter (四)
我们发现主角和怪物的样子还很简单,我们这一章先给主角加上动画。
新建一个专门放动画文件的Animation文件夹,里面新建一个Animator Controller,
![](https://img.haomeiwen.com/i7791233/14fdd9771e56daad.png)
双击它,进入动画编辑界面,在界面右键创建一个Empty,命名为Idle。
![](https://img.haomeiwen.com/i7791233/d4c578d14b6eb0c7.png)
点击新建的Idle状态(State),将Modle里的Idle动画赋予其中的Motion。
![](https://img.haomeiwen.com/i7791233/45113b046c5cf13e.png)
同理制作一个Move 状态(State),将Move动画文件放入,并让他们相互指向(右键状态然后选择Make Transition )
![](https://img.haomeiwen.com/i7791233/a5e84eb91bf8cda4.png)
在Animatior 的 Parameters中我们新建一个bool型参数 isMoving
![](https://img.haomeiwen.com/i7791233/f4e1daf33075568a.png)
然后点击Idle和Move的连接线,给他们的Conditions添加这个参数,其中idle指向Move的设为true,另一个设为false;他们的Has Exit Time都不勾。
![](https://img.haomeiwen.com/i7791233/2842ea2deac3f165.png)
接下来是编辑代码,打开playerMovement.cs 加入如下内容:
![](https://img.haomeiwen.com/i7791233/a217c4ac4ac9b42d.png)
运行一下,发现1个问题,如果我们一直站着不动,Idle动画也只播一次,我们点开idle文件的Edit按钮,点选LoopTime和Apply,即循环播放,就好啦。
![](https://img.haomeiwen.com/i7791233/ae87254c5ecfa0ab.png)
解释一下这个动画流程,从Entry开始,循环播放Idle动画,Idle动画有一个指向Move的箭头,这个箭头有个条件,即isMoving为True是转换到Move动画,在这个isMoving在代码里通过是否在移动来控制。
现在,我们添加一个受伤闪烁的动画,
在场景中我们新建一个Canvas,里面加一个Image,为了区别,这个Canvas我们命名为MainCanvas,它的Render Mode 设为 Overlay,即一定显示在屏幕上。image的初始透明度为完全透明,并扩充整个Canvas。
![](https://img.haomeiwen.com/i7791233/ac5d526783724d04.png)
![](https://img.haomeiwen.com/i7791233/648e3d60ac486cc6.png)
在PlayerHealth.cs里加上:
![](https://img.haomeiwen.com/i7791233/c668041384168db0.png)
再将对应的Image拖入就行啦。