unity root motion的velocity和rigidbody的velocity

为了制作运动合适的locomotion,使用了root motion,但是角色的速度就会被动画接管。在制作掉落状态时,就出现个问题,人物走到悬崖边,继续走,掉下悬崖,按道理来说人物有个向前的速度,掉落过程应该会是一条弧线,但是由于掉落动画是没有任何速度的,在走动过渡到掉落之后,速度为0,所以人物直接垂直掉落,保持着掉落状态,这时无论在fixedupdate、update修改rigidbody的速度都不生效。所以其实该在什么地方去修改rigidbody以达到这种效果。

如果是在onAnimatorMove接管速度,那么掉落时的垂直速度就是自己设置的并非是物理系统根据重力计算得出的,所以,在用root motion和rigidbody时两者该怎么协调

此问终结,感谢这位仁兄的努力https://blog.csdn.net/qq_36584063/article/details/78380394

问题就在于动画修改人物的运动和生效间的的回调:onAnimatorMove,直接打开默认不会执行默认的root motion,需要调用接口 ApplyBuiltinRootMotion,让原先的root motion修改生效,然后在生效后的运动上修改想要的效果即可生效,我在此先调用接口,然后进行将掉落前的水平速度赋给人物,在掉落时保持水平速度,而下落速度保持重力等效果作用后的结果,就可实现