Unity学习笔记:Animator、Animator Controller、Animation Cilp之间的关系、以及Blend Tree的用法;

首先..祝本菜不挂科!

首先,我们先想一个问题,我们控制一个人物移动,会产生不同的移动画面,那么我们是如何切换这些动画的呢?很简单,我们只需要收集当前人物的特定的状态即可,比如是否受到攻击、水平速度、垂直速度等等;

Animator可以说是正是干了收集人物的状态数据的活,如何居然有了数据,那么我们就得对着这些数据进行处理,如何判断该播放哪个动画,Animator Controller正是干了这个活的,他从Animator中拿取数据,然后根据这些数据进行处理;

居然是要从Animator中拿数据,而且一个Sence中可以有多个Animator,所以我们得将特定的Animator Controller与特定的Animator关联起来,如下:

Unity学习笔记:Animator、Animator Controller、Animation Cilp之间的关系、以及Blend Tree的用法;_第1张图片

我们可以在这个选项中选择Animator对应的的Animator Controller;

然后Animation Cilp就比较好理解了,这个就是我们制作的动画,我们可以直接从资源管理器在将Animation Cilp拖入到Animator Controller中,供之使用,如图:

Unity学习笔记:Animator、Animator Controller、Animation Cilp之间的关系、以及Blend Tree的用法;_第2张图片

注意:这里我们创建好一个Animation Cilp后,可以供多个Animator Controller使用。

总结一下:Animator链接着程序与Animator Controller,Animator Controller管理着众多的Animation Cilp;

制作Animation Cilp的几种途径:

1:直接在资源管理器中创建一个Animation Cilp对象,然后在Animation制作界面制作即可;

2:在Animation制作界面点击Hierarchy界面中的对象,为其Animator脚本对应的Animator Controller创建对应的Animation Cilp,当选中的对象没有Animator脚本和Animator Controller时,系统会自动创建,并将两者关联起来;

如何将程序与Animator Colltroller链接起来:

这个时候我们就需要BlendTree【这里仅仅说明2D游戏方面的运用】了;

BlendTree说白了就是一个根据坐标系的来选择播放那个动画的玩意;

这个坐标系里有一个红点和一堆蓝点,蓝点代表着一个Animation Cilp或者另外的BlendTree,红点靠经哪个蓝点,系统就会给对应的对象播放对应的Animation;

我们可以通过程序设置红点的坐标,以达到控制动画播放的效果;

Unity学习笔记:Animator、Animator Controller、Animation Cilp之间的关系、以及Blend Tree的用法;_第3张图片

 其中箭头指着的就算红点的X坐标参数和Y坐标参数,这里本菜是用BlendTree绑定了另外两颗BlendTree,然后另外两颗BlendTree分别绑定了两个动画:

Unity学习笔记:Animator、Animator Controller、Animation Cilp之间的关系、以及Blend Tree的用法;_第4张图片

这里BlendTree中的坐标系可以是2维的也可以是1维的,这取决于BlendTree与几个参数有关;

在程序当中,我们可以通过获取对象的Animator类,然后使用Animator类提供的方法来改变对应的Animator Controller中的参数【注意:每颗BlendTree的参数都是共享的】

如下:

using System;

namespace ConsoleApp2
{
    Animator KingBlackAnimation;//存储控制动画的权限

    void Start()
    {
        KingBlackAnimation = GetComponent();//获取对应对象的Animator脚本

        KingBlackAnimation.SetFloat("IsRun", 1f);//将Animator对应的Animator Controller中一个类型为float名为IsRun的参数修改为1
    }
}

这里我们就可以提供程序改变红点的位置了;
 

你可能感兴趣的:(unity,学习,游戏引擎)