状态机是unity中很重要的一个概念,不要听这个名词很复杂,其实是很简单的东西,比如一个人,有吃饭,睡觉,学习这些不同的状态,游戏中的东西,也有不同的状态,下面以怪物为例,说明unity中状态机的用法.
第一步 生成不同状态下的动画
美工一般会把不同的状态先做成一些序列贞,放在一个图里面.我们一般先确定开始的时候,怪物的状态要用到哪些图片,把这几个图选中,往Hierachy窗口一拖,就生成了第一个状态的动画.我们叫他idle状态,然后我们找到追赶玩家要用到的几张图片,全选后,拖到刚才的动画上(不要拖到新位置,拖到新位置的话,会生成新的),这样就会给刚才那个对象新加了一个动画,重复这个动作,直到所有动画添加完
第二步 添加不同的变量,来控制状态之间的切换
比如怪物跟玩家接近一定的距离,就要切换到追赶玩家的状态
怪物死的时候,就要切换到死亡状态,因此要设2个变量
Run,dead都是bool型的
然后在animator窗口,创建状态切换线,任何状态在dead等于true的时候,切换到dead,idle状态下run为true的时候,切换到run,run状态下,run为false就切换回idle
第三步在程序里设置动画的变量,以便状态机控制器能正确的切换不同状态
public class enemy : MonoBehaviour
{
public Transform Player;
public float attackDistance = 25;
public Animator anim;
// Use this for initialization
void Start ()
{