动画状态机切换状态

我一开始犯了两个错误

  1. 我在一个parameter切换两种状态的时候
    在这里插入图片描述
    右边的条件我是这么写的
    在这里插入图片描述在这里插入图片描述

这样写会造成一个问题就是在我没有输入条件触发 anim.SetFloat(“eat”,a);的时候他就会触发第二个状态,我是怎么发现的呢?是因为我一开始触发状态的脚本没有开启,我是在另一个脚本里写了延迟,5秒之后触发另一个脚本,但是我在动画状态机的时候看见他一开始就触发这个条件了,我认为他应该是一开始就给a传了一个值,但小于0,所以这个状态就一开始就触发了,因此我把第二个状态的触发改成了
在这里插入图片描述
这样我们的数轴就是取后边的两段,这样就不会触发了。

  1. 因为我两只小羊都用的状态触发,但是我发现为什么另一只小羊不行,我想了很多问题,是不是我动画状态机两只小羊的parameter是一样的,因此不行,但是我考虑过我这两只小羊用的不同的动画状态机应该不是这个问题,我后来又试了一下果真不是这个问题,我又考虑我脚本的问题是不是我脚本写的有错误,脚本的两个动画获取都是anim,不过我这个没改我觉得不可能是这个问题,后来我把两个对比看,发现我在脚本中写的是SetFloat但是我在动画状态机的parameter中写的是Integer
    ](https://img-blog.csdnimg.cn/20190304101330161.png)
    只有这个0.0才表示Float,这样我的两只小羊终于可以啦!!!!

当我想要默认状态下的一个状态一直持续的时候,我采用的是SetInteger equals 2 然后在返回状态的时候一直是也给他写了一个条件,equal 3 然后就会一直持续walk的状态

猜你喜欢

转载自blog.csdn.net/vickieyy/article/details/88102290