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

问题描述 投票:0回答:1
 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”。

碰撞点x的位置似乎与y一样准确。

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

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

c# visual-studio unity3d collision-detection polygon
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.