Animator 实现动画完成事件的一些思考

动画事件

近来想在PlayMaker上Action上加一个播放动画并等待完成的功能,于是乎落入了井底深坑。

虽然处处设坎,但是也还是有两个可行的解决方案(注意这里可行的意思是只能在PlayMaker的Action上进行编辑操作,而不是通过加组件这种增加操作复杂性来解决问题):

  • 动态添加AnimationEvent做回调(同步事件)
  • 模拟当前动画进度做回调(非同步事件)

同步回调 AnimationEvent

先来说说事件这个,实现相对简单,因为事件是侦对AnimationClip而添加,所以这里实现大概又分以下几层:

  1. 给AnimationClip添加与移除事件。
  2. 实现通过Animator的Play与CrossFade来取到当前AnimationClip。
  3. 通过Mono实现回调事件与动画事件的结合。
  4. 把以上方法封装成扩展方法(一句代码搞定的那种)。
先看看最终的使用形态:
开始实现:
1、给AnimationClip添加与移除事件。
2、实现通过Animator的Play与CrossFade来取到当前AnimationClip。
3、通过Mono实现回调事件与动画事件的结合。
4、把以上方法封装成扩展方法(一句代码搞定的那种)。

模拟回调

未完待续

结语

加油,骚年。

发表评论

您的电子邮箱地址不会被公开。