使用rvo避障后,能正常寻路等。但是比如第一个小球到达指定地点,第二个小球被第一个挡住,此时第二个小球会快速抖动,直到找到合适的路线到达指定地点才会消失。这是什么原因啊?用的rvo2的代码也是网上的源码
dddddddddddddd顶一下
抖动可能是避障的时候会改变移动方向,而改变了移动方向,下一帧检测到还是会发生碰撞。
大佬 能受累再详细说明一下吗 或者说我应该怎么修改
试试加大探测距离,然后物体用加速度方式,不要一下强设置速度
我现在的做法是,所有生成的小球 一开始都是最大的速度,然后当前面的小球到达目的地后,速度设为0,直接静止。然后后面的小球如果碰到前面静止的小球,按理说会改变路线,在改变路线的这个过程中,会发生抖动
你的代码里应该有一个agent的类,调这个的参数
原因是 这一帧A向前先移动了比较大的距离, 然后下一帧发现与B碰撞,被比较大的位移挤回去,第三帧由于脱离碰撞了,又重复第1帧,比较大距离进到了B范围内。
比较简单粗暴的话,考虑使用预测,例如A每帧位移10 , 预测到与B碰撞 只有7时,此时A的位移应该改成7,就不会因为变成-3,导致陷进去B单位里面,也不会被B单位的碰撞挤出来.
另外,预测发生在update,位移执行发生在lateupdate中