Unity动画系统(Animation与Animator的区别)

老版本Unity使用的是Legacy动画系统,在Unity4.0后引入了一套全新的动画系统,即为Mecanim动画系统。
Legacy动画系统使用的是Animation组件,直接对动画片段进行操作,而Mecanim动画系统使用的是Animator组件,是对各动画片段之间的切换进行控制。相对于老版Animation,新版的Animator加入了动画状态机和骨骼Avatar。
1.使用Legacy动画系统可直接将FBX文件拖入场景,Unity会自动帮我们添加Transform和Animation两个组件。可采用脚本"GetComponent()"获取GameObject的Animation组件后,直接使用“Animation.Play()”调用Animation组件中包含的动画。也可采用“Animation.CrossFade()”实现动画之间的交叉淡入。模型使用通用的FBX格式,一般有两种情况,一是所有的动画和模型都一起存放到一个FBX文件中,还有一种情况是模型单独一个文件而动画单独一个文件。如果是第二种情况,还需要先使用animation.AddClip(LoadAnimationClip(“fbx文件路径”), “动画片段名”)载入动画片段后再使用“Animation.Play()”进行调用。
但在使用Legacy动画系统时,如果提示“The AnimationClip ‘XXX’ used by the Animation component ‘Player’ must be marked as Legacy.”
Unity动画系统(Animation与Animator的区别)_第1张图片
则需要在Assets下找到模型文件查看属性,在Inspector面板中选择Rig,设置为Legacy.
Unity动画系统(Animation与Animator的区别)_第2张图片
2.使用Mecanim动画系统则需要首先在Project面板中Create->Animator Controller创建Animator。
创建游戏对象并添加Animator组件,然后将动画文件拖入组件。
把准备好的动画片段拖入Animator编辑面板形成动画状态。
选中动画状态,将Assets中对应的动画拖入动画状态属性面板中的Motion中。
右键单击动画状态,选择make transition拉出白线到另一个动画状态,创建动画过度。
在animator编辑面板左边创建参数,然后点击过度动画白箭头,然后进行参数配置。
最后用脚本传递参数实现控制动画的播放。

你可能感兴趣的:(学习笔记)