【unity animator】mecanim动画系统疑难问题研究精华分享

本文分享了Unity Animator的Mecanim动画系统中的一些常见问题与解决策略,包括any state的self切换选项、多条transition条件、ExitTime的使用、动画过渡时间的指定、精确控制动画播放位置等,帮助开发者更好地理解和优化游戏动画效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://tieba.baidu.com/p/3525963206

 

1、any state切换到任何状态机,都会有一个can transition to self选项,勾选此选项可以重置自身状态。


2、从a状态机,到b状态机,可以可以连接多份transition,这时候各个transition的condition都是独立的,是或的关系。


3、必须使用ExitTime,UI面板里调节相互切换的起始时间才是有意义的。如果不使用ExitTime,你就算调了过度时间,只要一做别的操作,切回来还是会给你强制回到50%的状态。


4、不管用不用ExitTime,过度时间的长短都可以手动指定。


5、不管用不用ExitTime,都可以拖动将要过度到的状态机的位置,来确定ExitTime结束的时候,进入的这个状态机动画播放的位置。(也就是说,你可以不从头开始播放动画,可以从中间可以从结尾。这样,你比如要切换一个走路到跑步的状态,你可以精确地定位动画播放的位置,走路时是左脚踩地,找准跑步动画的位置,也让他左脚踩地,无缝切换)



6、ExitTime的意思是说,到达指定的时间的瞬间,切换到其他状态机,时间早了不满足条件,时间晚了,也不满足条件,只有刚刚好到这个时间点,才满足一次条件。如果有别的判断条件,不满足的时候,ExitTime就有可能因为时间错过而不触发,要等到时间过一个循环才触发。这个时候可以使用Animator.GetCurrentAnimatorStateInfo(int layer).normalizedTime作为AC的一个float,设定时间判断条件不使用ExitTime,而是使用这个float,当它大于指定时间的时候触发。


7、在最近几个版本的unity中,默认导入的动画是24fps的(以前是30fps的)。当你把动画放在状态机里跑的时候,会按引擎的时间去跑,也就是60fps,中间差值。但是mecanim transition的预览窗口的t

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值