赞
踩
在Unity动画控制中,如何获得当前动画已经播放到的帧呢?
其实可以通过 clip.frameRate,clip.length,及normalizedTime来计算出具体的帧。
- //当前动画机播放时长
- currentTime = anim.GetCurrentAnimatorStateInfo(0).normalizedTime;
- //动画片段长度
- float length = anim.GetCurrentAnimatorClipInfo(0)[0].clip.length;
- //获取动画片段帧频
- float frameRate = anim.GetCurrentAnimatorClipInfo(0)[0].clip.frameRate;
- //计算动画片段总帧数
- float totalFrame = length / (1 / frameRate);
- //计算当前播放的动画片段运行至哪一帧
- int currentFrame = (int)(Mathf.Floor(totalFrame * clipTime) % totalFrame);
-
- Debug.Log(" Frame: " + currentFrame + “/” + totalFrame);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。