接上篇Animator Controller简介→这里
混合树(Blend Tree)是用来混合动画的。
它默认是Animator Controller里面的一个State。
和其他的单个State里面存放1个Animation不同,混合树State里面可以存放多个甚至任意个动画。
举例:
这里的Run状态是一个Blend Tree,它里面有8个方向的动画,
双击打开Run,可以查看里面的状态,我们可以看到两个参数,Horizontal和Vertical,
通过改变这两个参数的值,能实现切换播放的动画,这个过程可以换另一种演示方式:
使用鼠标在这个2D面板上绕环移动,可以实现Horizontal和Vertical参数的改变,从而模拟切换动画的情况。
混合树(Blend Tree)的主要目的还是为了动画之间的平滑切换,换句话说,它能补帧。
以上图的Motion来说,Motion的选项卡有8个动画,
0.707这个数值不是瞎编的,最好记住。
像这样实现2D人物的8个方向的移动,需要在正确的Positon放好Anim文件。
我们通过用鼠标拖动红点来模拟参数变化,这只属于一种测试,并不会影响直接作用的参数。
一般情况下,我们使用代码来控制参数的获取值。
我们在Update函数中,一般写
float h=Input.GetAxis("Horizontal");
Animator.SetFloat("Horizontal",h);
来实时地改变参数。
这是最基础的写法,而且还要注意,最后一张图,我们的Blend Type选的是2D Simple Directional。