获取动画状态机中动画片段的长度,非常简单的代码
public float GetClipLength(Animator animator, string clipName)
{
if (null == animator ||
string.IsNullOrEmpty(clipName) ||
null == animator.runtimeAnimatorController)
return 0;
// 获取所有的clips
var clips = animator.runtimeAnimatorController.animationClips;
if (null == clips || clips.Length <= 0) return 0;
AnimationClip clip;
for (int i = 0, len = clips.Length; i < len; ++i)
{
clip = clips[i];
if (null != clip && clip.name == clipName)
return clip.length;
}
return 0f;
}