Unity3D之Animation中AnimationEvent的BUG?爬坑向

来源:互联网 发布:淘宝发布宝贝类别 编辑:程序博客网 时间:2024/05/24 22:44

写在前面:账号被盗,博客被封,直到今天才动手找回,没想到还挺顺利。刚好手头上碰到一个坑,记录一下。


BUG_1:

如图,我在动画的末尾添加了一个AnimationEvent,我希望达到的效果。


if(动画拨到最后一帧时(情况一))

{

通知我,这里输出一个字符串,表示技能完整施放;

播放另一个动画;

}

else if(动画播放一半切换到另一个动画(情况二)

{

那么不触发这个AnimationEvent;

}


问题出现了,我发现无论我是中途切换动画或者让动画播完,AnimationEvent都会被调用。(此刻我的心情是崩溃的)。

。。。(查代码逻辑,过程略,其中并没有什么问题,耗费生命1 h)

于是我觉得问题出在动画系统。

。。。(百度,谷歌,没有。。耗费生命0.5f h)

自动(自己动手)修复吧。

。。。(把动画系统的参数改来改去,耗费生命1.5f h)

卧槽!

问题出在这!

 这!

我吧LoopTime取消掉,就可以了,也就是说动画如果是LoopTime的状态,无论如何都会触发AnimationEvent,以我的观点来看,这明显不是我想要的,所以我认为这是个BUG。

以上,BUG_1。

——————————————————————————————————————

BUG_2:

BUG_2是在调BUG_1的时候发现的。

如图,当LoopTime设置为true,这里我只调用一次动画,结束时却同时出现两条OutHitHeavy。这就表示AnimationEvent被调用两次,WHY?(这比上面那个BUG给我造成的阴影面价还大)



。。。。(各种无语)

自动修复。

细心的同学可能发现这张图和BUG_1的图的区别在:

                                                          

没错,我的AnimationEvent向后移了一帧,超出了动作帧。

槽!!

这尼玛求解释啊,玩人那吧!

同样,我取消掉LoopTime之后,这个问题就不存在了。

好吧,因为这个问题调了一下午,心情烦躁。。

列出这两个问题想听听各位的看法


就此搁笔了,如果文章对您有帮助,我深感荣幸


大四了,现在正在实习,同样,除工作以外也想做些有趣的游戏,个人更希望是娱乐式的游戏项目,如果有意的话请与我联系。

0 0