在Unity中,如何获得2d多边形对撞机,即大对撞机的面积减去大对撞机内的一些较小对撞机?

时间:2019-11-22 18:39:13

标签: unity3d 2d physics-engine

像所附加的图像一样,我想得到一个最大对撞机区域的多边形对撞机,再减去这两个较小对撞机在大撞机内部的面积?

我只想拥有一个仅覆盖下图中灰色区域的对撞机。

请在运行时获取复合材料/多边形或其他类型的对撞机。

非常感谢。

enter image description here

3 个答案:

答案 0 :(得分:0)

我不确定,但是您可以使用单独的盒子对撞机来获得相同的效果。脚本中只需要多个引用即可。

答案 1 :(得分:0)

最快的方法确实是拥有3个单独的碰撞器,当与一个较大的碰撞器发生碰撞时,您还要检查两个较小的碰撞器是否发生碰撞。

答案 2 :(得分:0)

检查 Clipper 库的多边形操作(也值得检查 eppz! Geometry 库,它本身使用 Clipper)。

然后,您可以使用生成的多边形“路径”(如 Clipper 库中所称)来创建多个 EdgeCollider2D(您可以[设置其点][4] 来创建每个多边形的形状。

但是这种方法有一个问题,那就是最终你不会有一个带有内部和外部的“实体”碰撞器,而你只会有线条来碰撞。希望在大多数情况下这不会成为问题。