最近使用Animator进行模型动画的播放,并且实现正常播放、暂停和倒放的功能,做出来之后发现播放过程中暂停再继续播放或者倒放是无延迟进行的,但是正向播放或者倒放动画完毕之后再进行播放会产生延迟。
Unity Animator解决动画倒放、倒放延迟、播放不连续问题
经过该博客指点之后,发现我原本只是简单增加了一个Float参数名为Speed,与对应的Animation的播放速度相乘,正向播放或者倒放以及暂停的时候修改为1、-1和0就完毕,忽略了动画层的normalizedtime的问题。正常动画播放前normalizedtime为0,播放完毕之后normalizedtime为1,但是在我的代码下例如在正向播放完毕之后,看似动画播放完毕,实际上normalizedtime还在继续增加至大于1,设置Speed为-1倒放回来之后normalizedtime是从>1的参数逐渐减回来,所以导致了延迟。在动画未播放完毕时normalizedtime是正常暂停增加,所以此时继续播放或者倒放都是无延迟的。
按照上述博客,在正向播放或者倒放的同时将normalizedtime设置为对应的0或者1,就能避免延迟的发生。