当前位置: 代码迷 >> 综合 >> [Unity]混合树(Blend Tree)初认识
  详细解决方案

[Unity]混合树(Blend Tree)初认识

热度:67   发布时间:2023-10-13 04:14:16.0

主目录:https://www.v2know.com/MainPage/Category/Unity3D

 

接上篇Animator Controller简介→这里

 

混合树(Blend Tree)是用来混合动画的。

它默认是Animator Controller里面的一个State。

和其他的单个State里面存放1个Animation不同,混合树State里面可以存放多个甚至任意个动画。

 

举例:

[Unity]混合树(Blend Tree)初认识

这里的Run状态是一个Blend Tree,它里面有8个方向的动画,

[Unity]混合树(Blend Tree)初认识

 

双击打开Run,可以查看里面的状态,我们可以看到两个参数,Horizontal和Vertical,

[Unity]混合树(Blend Tree)初认识

 

通过改变这两个参数的值,能实现切换播放的动画,这个过程可以换另一种演示方式:

[Unity]混合树(Blend Tree)初认识

使用鼠标在这个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。

  相关解决方案