统一重叠球检测不到子公司

时间:2019-05-26 21:17:10

标签: unity3d raycasting

我对两个立方体之间的重叠有疑问。我有一个用3D填充的许多1x1x1多维数据集填充的级别,其位置在变化。我想测试对于给定位置,两个立方体是否重叠。为此,我调用了Phsyics.OverlapSphereNonAlloc,其位置(位于重叠的多维数据集的中心)的半径为.25,以返回对撞机列表。如果返回了多个对撞机,则其中两个对撞机会重叠。那是主意。该呼叫没有返回任何对撞机。这是我正在做的2D截面图:

我相信没有发现碰撞器,因为整个重叠球都位于立方体碰撞器的内部。但是统一文档说Phsyics.OverlapSphere ...

  

返回一个阵列,其中所有对撞机都接触球体或在球体内。

我会认为,尽管Physics.OverlapSphere位于立方体对撞机内部,但从技术上讲,立方体对撞机仍在重叠球体内部。谁能给我解释一下,还是可以提供一种解决方法来找到给定点上所有对撞机的阵列?

1 个答案:

答案 0 :(得分:0)

该问题源于Unity措辞文档的方式。在您的情况下,球体位于碰撞器内,重叠球会在球体内部返回碰撞器。

我不确定我们在这里使用哪种比例尺,但是一种方法是使用Vector3.Distance将所有图块与您的位置进行比较。如果您有成千上万的块,则可以考虑合并这两种方法,在这两种方法中,您会遇到一个较大的重叠球体,然后使用结果公式并使用距离公式将结果范围缩小。

希望这会有所帮助! :)