Unity3D--Mecanim动画系统(三)-动画层Layer
2017-02-07 本文已影响202人
元宇宙协会
之前已经写过两套的动画系统,今天主要分享关于动画层的使用及注意事项
这个就是层的概念1.为什么动画中会有层的概念
其实在新版的动画状态机中,大量的技巧已经让一般的小白晕头转向了。而且就目前来说:使用状态机的单一层动画就已经可以满足日常开发需要。那么为什么出现层的概念呢?
先来几张图,对比一下,你就会发现哪里好
其实我们已经可以发现这种好处了,类似项目管理
第一:分离动画组
第二:规范动画制作
第三:提供更丰富的动画制作
Ps:其实跟我们的动画融合树差不多。。。
2.如何使用层动画?
01-添加动画层
添加层
注意:同一时刻我们只能执行一个层的动画片段。
02-添加参数
Paste_Image.png
注意:参数是执行动画的触发条件
03-给第二层的触发线绑定参数
Paste_Image.png
绑定的过程中,其实我们会发现New State就代指第一层动画组,而参数帮助我们过渡了层。当然动画是显示不出来的,但是动画片段确实执行了。
3.注意点?
在动画层之间切换的过程中,其实主要是通过参数的满足与否来进行层动画执行操作,但是有一个前提就是层的权重 如下图:
权重问题决定动画能不能显示出来如果不设置权重,你会发现即便分好层,而且在状态机中发现动画执行了,但是界面的角色并没有显示出来。
前面的分享已经提到过使用代码控制动画的参数,这里如何通过代码设置权重呢?
[SerializeField]
private Animator ani;
void Start () {
// 表示设置动画第二层的权重为1
ani.SetLayerWeight(1, 1);
}