unity3d 动画中断并重新播放的解决办法

来源:互联网 发布:程序员回家等于失业 编辑:程序博客网 时间:2024/06/02 06:04


如果想中断某个正在播放的动画,然后重新播放?

比如玩家被敌人击中了,正在播放被击中的动画,不巧紧接着玩家又被敌人击中一次,此时就得中断动画并重新播放。

解决办法:假设正常状态的动画为Normal,被击中状态的动画为Hit,考虑到Any State 能中断正在播放的动画,自然需要它。最后再加上一个Iterrupt 动画(不改变任何东西,且其时间设置的非常短)。示意图如下:

unity3d 动画中断并重新播放的解决办法

设置两个Trigger:hitTrigger 和 iterruptTrigger。

其中,Any State -> Iterrupt 为 iterruptTrigger, Normal -> Hit 为 hitTrigger,其他转换条件为默认方式。

//关键代码//如果正在播放的动画为被击中动画if(anim.GetCurrentAnimatorStateInfo(0).nameHash == hitNameHash){anim.setTrigger("iterruptTrigger");}else{anim.setTigger("hitTrigger");}
0 0
原创粉丝点击