Unity 获取当前动画播放的帧
在Unity动画控制中,如何获得当前动画已经播放到的帧呢?
其实可以通过 clip.frameRate,clip.length,及normalizedTime来计算出具体的帧。
1 //当前动画机播放时长 2 currentTime = anim.GetCurrentAnimatorStateInfo(0).normalizedTime; 3 //动画片段长度 4 float length = anim.GetCurrentAnimatorClipInfo(0)[0].clip.length; 5 //获取动画片段帧频 6 float frameRate = anim.GetCurrentAnimatorClipInfo(0)[0].clip.frameRate; 7 //计算动画片段总帧数 8 float totalFrame = length / (1 / frameRate); 9 //计算当前播放的动画片段运行至哪一帧 10 int currentFrame = (int)(Mathf.Floor(totalFrame * clipTime) % totalFrame); 11 Debug.Log("Frame:" + currentFrame + "/" + totalFrame);
来源:https://www.codenong.com/cs105655645/

浙公网安备 33010602011771号