Unity中有关Animation的一点笔记
Animation
Unity中Animation类并不是直接记载了和播放动画有关的信息,可以简单理解Animation为一个动画播放器,播放的具体内容就像卡带一样,当我们有了卡带后我们可以播放动画。
对应的则是编辑器中的组件
所以Animation里有一些和播放器的函数:
函数名 | 函数功能 |
---|---|
Isplaying(string name) | 名称为name的动画是否在播放 |
Play | 播放动画 |
Stop | 停止所有使用该动画播放器启动的正在播放的剪辑 |
AddClip | 添加一段剪辑(插入一个卡带) |
RemoveClip | 移除一段剪辑 |
Sample | 对当前状态取样 |
AnimationClip
而卡带则是AnimationClip,对应到Timeline里就是这样的一段区间
编辑器中打开Animation栏后进行编辑的也是它
通常我们称clip为剪辑
在clip中存放了各种信息,如动画事件、动画曲线、动画长度等。可以认为clip是信息的集合。
函数名 | 函数功能 |
---|---|
AddEvent | 添加动画事件 |
SetCurve | 添加动画曲线 |
SampleAnimation | 在给定时间对动画进行采样 |
AnimationEvent
AnimationEvent可以给动画添加事件,可以去触发参数数量为0或者1的函数。
变量名 | 功能 |
---|---|
time | 事件触发时间 |
functionName | 将调用的函数名称 |
inParameter | int类型函数参数 |
floatParameter | float类型函数参数 |
stringParameter | string类型函数参数 |
AnimationCurve
AnimationCurve则是动画曲线,保存了动画的关键帧的集合。
在clip调用SetCurve时设定曲线对应的组件类型。
编辑器里对应的是这个
函数名/变量名 | 功能 |
---|---|
keys | 变量keys保存了所有的关键帧 |
AddKey | 添加一个关键帧 |
RemoveKey | 移除一个关键帧 |
Keyframe
Keyframe是关键帧,保存关键帧的信息,包括时间、权重、曲线的斜率等信息。
变量名 | 功能 |
---|---|
inTangent | 此关键帧的传入切线 |
inWeight | 此关键帧的传入权重 |
outTangent | 此关键帧的传出切线 |
outWeight | 此关键帧的传出权重 |
time | 关键帧的时间 |
value | 关键帧处的曲线值 |
weightedMode | 关键帧的权重模式 |