我对两个立方体之间的重叠有疑问。我有一个用3D填充的许多1x1x1多维数据集填充的级别,其位置在变化。我想测试对于给定位置,两个立方体是否重叠。为此,我调用了Phsyics.OverlapSphereNonAlloc,其位置(位于重叠的多维数据集的中心)的半径为.25,以返回对撞机列表。如果返回了多个对撞机,则其中两个对撞机会重叠。那是主意。该呼叫没有返回任何对撞机。这是我正在做的2D截面图:
我相信没有发现碰撞器,因为整个重叠球都位于立方体碰撞器的内部。但是统一文档说Phsyics.OverlapSphere ...
返回一个阵列,其中所有对撞机都接触球体或在球体内。
我会认为,尽管Physics.OverlapSphere位于立方体对撞机内部,但从技术上讲,立方体对撞机仍在重叠球体内部。谁能给我解释一下,还是可以提供一种解决方法来找到给定点上所有对撞机的阵列?
答案 0 :(得分:0)
该问题源于Unity措辞文档的方式。在您的情况下,球体位于碰撞器内,重叠球会在球体内部返回碰撞器。
我不确定我们在这里使用哪种比例尺,但是一种方法是使用Vector3.Distance将所有图块与您的位置进行比较。如果您有成千上万的块,则可以考虑合并这两种方法,在这两种方法中,您会遇到一个较大的重叠球体,然后使用结果公式并使用距离公式将结果范围缩小。
希望这会有所帮助! :)