Unity Sphere Collision

时间:2014-04-01 11:11:17

标签: c# unity3d collision-detection game-physics

我知道Unity有很多方法可以确定一个物体是否在另一个物体内,无论它们是否触及等等,但我想知道的是一些更具体的东西。

在我的研究中,我发现了Physics.OverlappedSphere,从我可以阅读的内容中,您可以获得有关球体内对撞机的每个物体的信息。我想知道的是,如果我有两个使用Physics.OverlappedSphere的球体,我能找到这些球体相遇和相交的点吗?

如果这不可能,有人可以建议另一种方式我可以找到这些信息吗?

1 个答案:

答案 0 :(得分:2)

如果您使用Collision类并在其中使用Collision.contacts(这是一组接触点),您应该能够......

Taken from here

function OnCollisionStay(collision : Collision) {
    for (var contact : ContactPoint in collision.contacts) {
        print(contact.thisCollider.name + " hit " + contact.otherCollider.name);
        // Visualize the contact point
        Debug.DrawRay(contact.point, contact.normal, Color.white);
    }
}

尝试获取contacts数组的大小并查看最后几点。

// Print how many points are colliding this transform 
// And print the first point that is colliding.
function OnCollisionEnter(other : Collision) {
    print("Points colliding: " + other.contacts.Length);
    print("First point that collided: " + other.contacts[0].point);
}