Unity Animator BlendTree

Unity Animator BlendTree

创建 Animtor Controller 命名为 BlendTreeController, 双击打开
在这里插入图片描述

Unity Animator BlendTree_第1张图片

空白处鼠标右键 Create State -> From New Blend Tree
Unity Animator BlendTree_第2张图片

默认名为 Blend Tree,选择 Blend Tree 查看 Inspector 面板
Unity Animator BlendTree_第3张图片

Unity Animator BlendTree_第4张图片

将 混合树名字修改为 RunTree 其他参数默认
Unity Animator BlendTree_第5张图片

此时 Animator Controller 窗口中 BlendTree 修改名
Unity Animator BlendTree_第6张图片

双击 RunTree 进入 编辑界面
Unity Animator BlendTree_第7张图片

Inspector 面板如下
Unity Animator BlendTree_第8张图片

下面编辑 Blend Tryp = 1D,即只有一个变量操作变化

添加动画文件, 点击 + -> Add Motion Field
Unity Animator BlendTree_第9张图片

连续添加3次如下
Unity Animator BlendTree_第10张图片

将动画文件拖拽至 Motion 处
Unity Animator BlendTree_第11张图片

动画文件将自动显示在编辑窗口
Unity Animator BlendTree_第12张图片
Inspector 面板
Unity Animator BlendTree_第13张图片

Threshold 的值即为切换三个动画的参数Blend 的值(Blend 系统默认添加的,一般不使用它)
当 Blend = 0 时,切换到 第一个动画
当 Blend = 0.5 时,切换到第二个动画
当 Blend = 1 时,切换到第三个动画
创建自己的 Parameter

Unity Animator BlendTree_第14张图片

Unity Animator BlendTree_第15张图片

重新选择控制参数
Unity Animator BlendTree_第16张图片

将模型拖拽到场景,将 BlendTreeController 拖拽给模型Animator
运行 Unity,播放动画

Unity Animator BlendTree_第17张图片

双击打开 RunTree ,蓝色线为当前播放动画,修改 RunDir 的值
Unity Animator BlendTree_第18张图片

Unity Animator BlendTree_第19张图片

Unity Animator BlendTree_第20张图片

切换到不同动画
代码控制如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript : MonoBehaviour {

    private Animator animator;

	// Use this for initialization
	void Start () {
        animator = GetComponent();
	}
	
	// Update is called once per frame
	void Update () {
		if (Input.GetKeyDown(KeyCode.A))
        {
            animator.SetFloat("RunDir", 0);
        }

        if (Input.GetKeyDown(KeyCode.D))
        {
            animator.SetFloat("RunDir", 0.5f);
        }

        if (Input.GetKeyDown(KeyCode.S))
        {
            animator.SetFloat("RunDir", 1);
        }
	}
}

你可能感兴趣的:(Unity)