关于Animator获取当前剪辑长度

本文介绍了在Unity中正确获取动画状态时间的方法。由于过渡动画的影响,直接使用GetCurrentAnimatorStateInfo(0).length可能无法准确获取当前剪辑的时间。文中推荐使用IsInTransition(layer)判断是否处于过渡状态,并提供了一个从动画控制器直接获取原始剪辑的方法。

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

GetCurrentAnimatorStateInfo(0).length

 

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

 

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

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

 

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

var target = mGeneralSkillAttachInfo.Animator.runtimeAnimatorController.animationClips.FirstOrDefault(m => m.name == "xxx");

 

转载于:https://www.cnblogs.com/hont/p/4817041.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值