2016-02-28 65 views
0

我在红线的方向上投射了SphereCastAll,而且我有时会遇到一个奇怪的问题,就是此投射会遗漏下面屏幕中的某些碰撞体。绿线显示SphereCastAll的起源和不同刚体的最近命中,不与自己的碰撞体发生碰撞。 SphereCastAll半径是车宽的一半。SphereCastAll无法检测到某些碰撞

有时SphereCastAll会漏掉前方车辆的所有对撞机并撞上下一辆车。

刚体由WheelColliders

Image showing problem

+0

哪辆车在铸造?在图像左侧的那个? – Fattie

+0

包括您的铸造代码。你可能选择了错误的距离或其他简单的问题。 – Fattie

+0

铸造范围是红线的长度。铸造车是没有可见的对撞机的车。 问题是,这只会不时发生。大部分时间它运作良好,但是当这种情况发生时,汽车相撞 – Sebastian

回答

0

这里是Physics.SphereCast()一个link

一个有趣的方面是,它如果球已经与物体发生碰撞有时无法移动。因此,对于Physics.SphereCastAll(),如果球体已经与它们发生碰撞,它可能不会返回第一个(几个)碰撞。考虑使用Physics.OverlapSphere()来获取您丢失的碰撞或将SphereCast的半径减小到这样的半径,其中SphereCast无法在任何其他敌人/汽车/您拥有的内部开始。