依然是在上一篇的模型包中动画设置,继续讲里面的参数
1.要讲的是曲线 ,点一下加号之后我们就可以添加一个曲线了
添加好曲线之后我们点一下那个绿线就会出现这样一个面板,在这里我们就可以调整我们的曲线线条了
这个曲线的本质是一个不断变化的float数值。
假设曲线上有一动点会随着动画的进行(x轴前进)而沿着曲线运动,任意时刻该动点的y轴值就是我们的曲线的float数值
我们可以抬高,降低曲线,也可以在在曲线上添加关键帧(节点)来使得曲线更多变
那么我们创建曲线来获取曲线的float数值有什么用呢?
试想这样一个场景,我们希望一个粒子效果随着效果动画的进行生成的粒子不断变多,这时该怎么实现呢?
我们只需要给这个动画添加一个递增的曲线,然后获取曲线的值,并将这个值作为参数来控制粒子的生成就能达到粒子生成数随着动画的进行而递增了
那么问题又来了,我们怎么获取曲线上的数值呢?
1.首先我们来到动画器控制器,把有曲线的动画a添加进去,然后我们在左边的参数框中添加一个float类型的参数来获取动画a上的曲线的数值(注意这个参数的参数名要和我们的曲线名一致,只有一致的时候我们的参数才能够获取对应的曲线数值)
2.添加好参数(参数名 == 曲线名)后,我们打开挂载了动画器控制器的游戏物体身上的脚本
获取参数的值的方式:animator是我们之前就创建好的动画器播放器变量,承接了组件
方法括号内是我们要获取的参数的参数名
3.每个动画都可以具有一条或多条曲线
事件是一个比曲线还重要的功能
事件下面的那个轴是我们的动画片段的所有过程,我们可以拖动白杆子,选择动画片段中的某个特定过程
那么接下来需求就来了 --- 我们希望在动画片段进行到某个特定过程的时候发生一个事件,比如返回一个数值,这我们该怎么实现呢?
这就要用到我们的事件功能了
事件的本质就是当动画每次执行到特定帧的时候,就会调用一个提前给定的函数
1.拖动白杆选中发生事件的特定过程
2.在下面选中函数,添加函数名
3.在执行动画的游戏物体上创建一个专门的动画事件脚本去实现我们在特定帧给定的函数,当执行事件的时候就会自动去到脚本处调用这个函数(调用的方式是检索所有脚本中与给定函数的函数名相同的函数,然后调用,所以最好要避免重名的情况)
这个事件可以帮助我们在特定帧实现特定效果,比如一个人左脚落地后就产生一个火花,右脚落地后就产生一个水花
这些功能都能够在动画事件脚本中进行函数实现