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/

 
posted @ 2023-10-08 00:24  数据错误  阅读(783)  评论(0)    收藏  举报