Animation老动画系统
Contents
老动画系统
什么是老动画系统
- Unity中有两套动画系统
- 新:Mecanim动画系统——主要用Animator组件控制动画
- 老:Animation动画系统——主要用Animation组件控制动画(Unity4之前的版本可能会用到)
- 目前我们为对象在Animation窗口创建的动画都会被新动画系统支配
- 有特殊需求或者针对一些简易动画,才会使用老动画系统
Animation组件

- Animation:默认播放的动画
- Animations:该动画组件可以控制的所有动画
- Play AutoMatically:是否一开始就自动播放默认动画
- Animate Physics:动画是否与物理交互
- Culling Type:决定什么时候不播放动画
- Always Animate:始终播放
- Based On Renderers:基于默认动画姿势剔除

- Default:读取设置得更高的默认重复模式
- Once:播放一次就停止
- Loop:从头到尾不停循环播放
- PingPong:从头到尾从尾到头不停播放
- ClampForever:播放结束会停在最后一帧,并且会一直播放最后一帧(相当于状态不停止),表现效果和Once一样,但是逻辑处理上不同
代码控制动画播放
获取动画组件
var animation = this.GetComponent<Animation>();播放动画
animation.Play("1");
//淡入播放
animation.CrossFade("3");前一个播完再播放下一个
animation.PlayQueued("2");
//淡入播放
animation.CrossFadeQueued("2");停止播放所有动画
animation.Stop();是否在播放某个动画
animation.IsPlaying("1");播放模式设置
animation.wrapMode = WrapMode.Loop;其它
//层级和权重以及混合(老动画系统需要通过代码来达到动画的遮罩、融合等效果)
//设置层级
animation["1"].layer = 1;
//设置权重
animation["1"].weight = 1;
//混合模式 叠加还是混合
animation["1"].blendMode = AnimationBlendMode.Additive;
//设置混组相关骨骼信息
animation[""].AddMixingTransform();