unity5, animator state machine, 无条件transition实现播放动画序列

今天遇到这样一个需求,我有一个名为happy的animation clip和一个名为speak的animation clip。想实现当主角胜利后播放动序列:

happy->speak->happy->speak->...

这样无限循环。

走了一些弯路后发现直接在animator state machine里就可以搞定,如下图:

transition{idle->happy}上condition设为triggerWin,由于idle到happy的transition不能太拖沓,所以Has Exit Time要去掉勾选。

transition{happy->speak}上condition设为空,Has Exit Time可以保留,另外调节好过度。

transition{speak->happy}上condition设为空,Has Exit Time可以保留。另外调节好过度。

这样只要在胜利的时候调用Animator.SetTrigger("triggerWin"),就可以看到如下动画序列的播放效果了:

idle->happy->speak->happy->speak->happy->speak->...

而且各动画之间是带过度的。

----补充:

貌似如果Condition为空,则必须勾选Has Exit Time,否则不会自动跳转,且面板上报warning:Transition needs at least one condition or an Exit Time to be valid, otherwise it will be ignored.

posted on 2015-06-26 17:21  wantnon  阅读(2171)  评论(0编辑  收藏  举报

导航