老习惯,先给个参考链接,官方手册:
https://docs.unity3d.com/Manual/animeditor-AnimationEvents.html
分析:
1、使用条件:
有Animator,并添加了Animation,
同时,在对象上包含有自己写的组件,且组件含有 public 方法(可带一个参数)。
2、使用方法:
在蓝色框处,可以看到一个方形控件。在动画编辑窗口(Animation),最上面一行(蓝色框处)右键点击,选择 Add Animation Event ,即可添加动画事件,当动画播放到此处时,即可调用该函数。然后右键点击该控件,选择 Edit Animation Event 即可调出橙色方框的事件编辑对话框,添加事件的响应函数。按照前面链接中所述,可以添加不带参数或者带一个参数的回调函数,我这里使用如下函数:
public virtual void Disappear()
{
Destroy(gameObject);
}
这个函数的位置,在我自己写的脚本组件:MouseBasic,即右侧上方黄色方框的组件中。
设置完成后,当动画执行到此处,就会将对象销毁。
3、Bonus:用Curves编辑动画
Curves在红色方框标识处,做记录的原因是之前查找到的结果均为右键添加的。然而现在的版本貌似不需要添加,可以直接转换过去。编辑方法也很简单,官方链接为:
https://docs.unity3d.com/Manual/EditingCurves.html
多说一句,文档中编辑曲线的几种模式,在下图中有所体现,右键点击关键点,可以进行曲线特性的修改。
4、Bonus:Animator 可以控制子对象来完成动画
今天修改了一下动画,因为需要制作的动画特性不能使用一个对象满足,所以在寻求解决方案的时候发现,原来 Animator 是可以完成对子对象的控制的。所以在制作动画的时候,我们可以在 Animator 所挂载的对象下建立多层子对象,再通过 Animation 完成各个层次的控制,从而达到动画需求的。