Unity功能点---动画控制BlendTree的使用和说明

温故而知新

记录一下BlendTree的简单使用和说明,这里只针对二维动画的使用

先添加一个动画控制器,添加一个空的动画名字叫Run:

然后右键点击Run,添加一个BlendTree:

右键添加的BlendTree添加动画,赋值:

设置BlendType,我这里就是设置的笛卡尔坐标控制,动画只受自身坐标值影响,设置Parameters的参数名字。并且在控制器添加这两个Float参数:

这两个参数dir和speed分别对应Motion的Posx和PosY,设置PosX和PosY的值,对两个参数的值进行控制达到设置的PosX或者PosY的值就会进入对应的动画。从上面设置我们可以读取到RunLeft动画需要(PosX)dir的值达到-1,Run的动画需要(PosY)speed达1,那么Idle动画需要PosX和PosY不变。

下面写一段代码控制dir和speed的值,并且在运行状态下手动修改PosX和PosY进行观察:

using UnityEngine;

public class Test : MonoBehaviour
{

    private void Update()
    {
        BlendTreeTest(); 
    }

  
    public void BlendTreeTest()
    {
        float h = Input.GetAxis("Horizontal");
        float v = Input.GetAxis("Vertical");

        AnimatorStateInfo info = anim.GetCurrentAnimatorStateInfo(0);
        if (info.shortNameHash == Animator.StringToHash("Run"))
        {
            anim.SetFloat("dir", h, 0.1f, Time.deltaTime);
            anim.SetFloat("speed", v, 0.1f, Time.deltaTime);
        }
    }
}

WS控制前进跑步和后退,AD控制左右转向,停止按键进入待机动画,看看效果:

基本就是这样的,以后接触更复杂的在补充

欢迎加群:4364930讨论。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页