Unity获取正在播放动画片段的长度

项目有一个需求是动画的播放时间是随机的,要在随机的时间内播放完整段动画。需要获取动画原本的时长来调整播放速度来实现。在这里我是用的是StateMachineBehavirour,在OnStateEnter时计算动画播放速度。但是在onstateenter中通过stateinfo获取的时长并非播放片段的时长,原因时unity animator的动画融合导致,所以解决方案有两个,一个时去掉动画融合,一个时通过animator.GetCurrentAnimatorClipInfo(0)[0].clip.length; 来获取clip的长度。
【Unity获取正在播放动画片段的长度】

    推荐阅读