今天和大家分享一下unity中Animation动画组件的简单应用 本文中不涉及人物动画制作,只是简单的动画组件的使用
一.Animation组件
- 1.Animatin 默认动画
- 2.Animatins/Size 播放动画数量
- 3.Rig/ Animatin Type/ Legacy 是指旧版动画系统
Mecanim 是指新版动画系统
旧版本动画系统和新版本的动画系统有很大的不同
如何播放动画?
播放动画主要用到这几个方法,Play,CrossFade和CrossFadeQueued,给大家讲一下这三种方法的不同
Play是瞬间切换,没有过渡效果
CrossFade则是有过渡效果,但是只能且能切换同一层的动画,层级通过layer来设置
CorssFadeQueued()函数是播放动画队列,参数是(动画名称,过渡长度,队列模式,播放模式),
其中队列模式是指结束上一个动画,开始下一个动画
那么结束播放动画如何实现呢?
很简单只需要通过Stop()函数来实现
二.动画融合
1.AddMixingTransform()
参数是你要播放动画的组件,例如一个人物有胳膊,腿,身体,人物走路的时候只想让它的腿动,
而手不动,则此时可以用动画融合,函数参数就是两条腿就可以实现该效果
三.动画帧事件
定义:当动画播放到某一帧,执行指定的方法,例如当敌人AI攻击的时候武器打中人物的时候,
但是此时并没有真正的打中 只是到达一定的角度,像是刺中,而执行人物掉血的方法,就可以使用动画帧事件
创建动画帧事件的过程:
1.首先需要拷贝人物预置体中的动画到另一个文件夹中 原因:因为通过动画分割出的动画或者说是人物预置体中自带的动画,
属性为只读属性,不可添加帧事件
2.然后再打开Animation 快捷键是ctrl+6
3.再选定动画和该动画指定的某一帧添加帧事件即可,事件方法只要在该物体上挂载的脚本上定义
而这里又要涉及一个重要的方法 SendMessage() 顾名思义,这个方法是发送消息的,让目标物体执行一个方法
具体用法是SendMessage("方法名",参数),方法在目标所挂载的脚本中定义,估计有人会问,这个有什么用,
举个简单的例子,比如敌人AI打击到了人物,人物的血条要减少,所以就可以通过SendMessage来达到这样的效果