前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Unity动画系统的StateMachineBehaviour

Unity动画系统的StateMachineBehaviour

作者头像
bering
发布2020-05-21 00:21:40
1.9K0
发布2020-05-21 00:21:40
举报
文章被收录于专栏:游戏开发之旅

需求分析: Unity中在人物播放某个动画时往往伴随着动画音效的播放,或则是人物打击的粒子特效播放。

  • 解决方案一:早期这种需求的处理方案是在Animatio(Ctrl+6)动画中添加Event事件,然后填写注册的方法名,Unity会在挂载该动画的物体上查找该方法,在动画播放到定义事件的那一帧时,会执行该方法,我们通常将动画播放的音效或则粒子特效在该方法中实现,不过Unity5之后,这个方法就不好用了,这些事件被Unity官方定义成了一系列的系统事件,不能够自定义使用了。
  • 解决方案二:其实我们要实现上述需求还可以使用StateMachineBehaviour,通过定义一个类继承自StateMachineBehaviour并重写其中的方法,如:OnStateEnter(动画进入该状态时使用),OnStateExit(动画离开该状态时使用),OnStateUpdate(动画在该状态每一帧调用)等等。 这里我们使用解决方案二举例,Unity版本使用的是Unity2018.3.14版本,在人物疾跑状态下实现人物残影。 这里放上实现的效果图:
实现方法

创建RunBehaviour脚本继承自StateMachineBehaviour并重写其中的 OnStateEnter,OnStateExit,OnStateUpdate方法;在此脚本中实现人物疾跑状态下的残影,之后将脚本挂载Animator Controller中的Run动画状态上

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/05/15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实现方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档