如何获得多边形对撞机接触点

时间:2020-05-12 03:09:06

标签: c# visual-studio unity3d collision-detection polygon

 if(collision.gameObject.tag == "Ball")
        {  
            collision.GetContacts(contactPoints);

            Debug.Log(contactPoints[0].point.y);
        }

https://i.stack.imgur.com/s6aiv.png

如果您已检查图像,则会注意到在多边形对撞机中y位置最小的点为“ -1.445364”,与同一点“ +1.8”发生碰撞时将返回该点,而不是预期的点值为“ -1.445364”。

除了y之外,碰撞点x的位置似乎是正确的。

我还检查了对象本身的世界位置,但仍然不匹配。

我需要知道这个错误的号码来自何处以及如何解决。

1 个答案:

答案 0 :(得分:0)

contact point返回世界空间中的实际接触点。我的意思是,这是两个物体之间发生碰撞的世界空间中的点。

"points"下的值在本地空间中。您将必须基于碰撞接触点来计算对象的位置(即枢轴点)。除非已更改,否则通常为对象的中心。