欢迎光临散文网 会员登陆 & 注册

Unity Animancer 插件,官方实例学习笔记01

2023-07-23 16:41 作者:AC_wzy  | 我要投稿

Animanncer官方文档地址:https://kybernetik.com.au/animancer/

Animancer官方文档-示例地址:https://kybernetik.com.au/animancer/docs/examples/

建议要学的就去官网文档跟着做一遍。

这篇文章用于保存我自己跟着官方示例学习所记录的注释

也可以当参考看

总的来说:

1、准备好需要的动画Clip

2、给要播放动画的GameObj添加Animator组件、AnimancerComponent组件

3、编写控制脚本


Quick Play

控制代码,自己打的,对应Examples-Basics-Quick Play(01-01):简单的播放

首先,要用 Animancer 插件播放动画,需要在物体上挂载 Animator组件AnimancerComponent组件

第三个就是我们自己编写的控制脚本(这个是示例自带的,跟我自己打的名字不一样功能是一样的)

在上图可以看到 Animator组件 中的 Controller 一栏是空的,我们不需要它。

Animancer组件 中的 Animator一栏记得分配

官方文档关于示例的结构图,PlayAnimationOnEnable就是我们编写的控制脚本

效果:

官方文档的图

Tips:在默认情况下 Animancer 播放完动画后不会自动重新播放(即播放一次后停止,就算Plye方法放在Update里也一样),除非 动画Clip 勾选了 LoopTime 。这里示例的待机动画Clip勾选了 LoopTime 所以它会在只调用一次 Play 后一直播放下去


Basic Movement

控制代码,这里实现了当按下W键时角色就会播放移动动画否则播放待机动画的功能(这里结尾的最后一句话有歧义,意思是 并不会打断动画重头开始播放)
示例挂载的组件,第三个是控制脚本
结构图
效果图,下面会说怎么样平滑过渡,这里只是简单的演示切换动画

Tips:待机动画Clip和走路动画Clip要勾选LoopTime


Basic Action

现在我们要实现角色在单击鼠标后播放动画(开枪),并在播放结束后回到待机动画

这个时候的效果

播放完射击动画后就不动了,显然不是我们想要的

我们需要让角色播放完这个动画后回到待机动画,要实现这个

我们要获取 Play 方法返回的 AnimancerState

AnimancerState 允许你获取和设置目标动画所有的播放详细信息


官方文档对动画state的解释

传送门:https://kybernetik.com.au/animancer/docs/manual/playing/states

在这里我们只使用 End Event

现在播放完射击动画后就通过 End Event 来重新播放待机动画了

关于AnimancerEvent system解释请去官方文档翻阅(我也没弄明白多少,不敢讲:))

现在我们如果在播放射击动画的时候再一次或多次按下鼠标键,射击动画并不会被打断重新开始,因为当调用 Play方法 时 Animancer 不会自动地重新开始动画

如果我们想让动画在调用 Play方法 时能重新开始播放,在这里就是类似快速开火的效果

我们只需要设置 动画stateTime 值为 0 就可以了:

播放动画的时候如果检测到 动画stateTime值 为0,那么动画会被重头播放:

效果


Unity Animancer 插件,官方实例学习笔记01的评论 (共 条)

分享到微博请遵守国家法律