通常下意识的肯定用这个接口

GetCurrentAnimatorStateInfo().length

但是存在一个过渡动画的问题,具体看这篇:过渡动画的测试

所以当播新的状态时直接取动画时间,取到的就不是当前剪辑的时间。

也可以加一个判断,使用这个接口判断是不是过渡bool IsInTransition(layer)

更直接的解决方法是去动画控制器里取原始剪辑:

var target = mGeneralSkillAttachInfo.Animator.runtimeAnimatorController.animationClips.FirstOrDefault(m => m.name == "xxx");
05-11 01:42