//得到当前Animation正在播放的动画
public static string GetCurrentPlayingAnimationName( Animation animation)
{
foreach (AnimationState state in animation)
{
if (animation.IsPlaying(state.name))
return state.name;
}
return null;
}
//得到动画播放片段当前帧
public static int GetAnimationCurrentFrame( Animation animation)
{
var animationName = GetCurrentPlayingAnimationName(animation);
if (animationName != null)
{
var currentTime = animation[animationName].normalizedTime;
float totalFrame = GetAnimationClipTotalFrame(animation[animationName].clip);
return (int) (Mathf.Floor(totalFrame* currentTime) % totalFrame);
}
return -1;
}
//得到一段AnimationClip的帧数
public static float GetAnimationClipTotalFrame( AnimationClip clip)
{
return clip.length / (1 / clip.frameRate);
}
Unity Animation扩展方法总结
最新推荐文章于 2025-03-29 14:32:53 发布