Animator一些功能上的问题描述
在Animation之间的切换上,有两点问题
1.Has Exit Time的设置
- 当没有设置Conditions(状态,状况),没有勾选Has Exit Time时,可能会发生忽略转换
- 勾选Has Exit Time,设置Exit Time为x,则为播放动画的x%时间切换到下一个动画。
2.Trigger的一些坑
- 当状态机内有多个SetTrigger 来回切换需要做复位操作。究其原因是,当一段动画AClip正在播放触发trigger:A过渡到动画BClip,然后在很短的时间内触发B,ClipB过渡到CClip,这时 A的状态并未复位。依旧是触发状态,当CClip回到AClip时,你并不需要主动触发A, A依旧是生效的, 所以会又自动进入到BClip,这样就和我们想要的状态不符了。anim.ResetTrigger(stateName); //stateName :上一个状态机 anim.SetTrigger(“idle”)
- 如果在初始阶段设置了一个Trigger(初始——>任务开始),则当前组件在重复设置setActive(true),setActive(false)时,则会重复设置Trigger。如果setActive(true)重复,则不会重复设置。
3 .动画切换太快的问题
- 动画切换过快会导致动画叠加,导致在视觉表现上出现错误
4 .Animation添加动画事件
- 在添加动画事件的时候,需要专门为动画事件添加脚本,父层级的脚本的方法可以被检测到,但是是有限的。最好还是添加专门的动画脚本
- 动画事件也是有条件的:
1. 最多只能接受一个参数
2. 参数的类型必须是Int, Float,String, Object中的一种