我知道Unity有很多方法可以确定一个物体是否在另一个物体内,无论它们是否触及等等,但我想知道的是一些更具体的东西。
在我的研究中,我发现了Physics.OverlappedSphere,从我可以阅读的内容中,您可以获得有关球体内对撞机的每个物体的信息。我想知道的是,如果我有两个使用Physics.OverlappedSphere的球体,我能找到这些球体相遇和相交的点吗?
如果这不可能,有人可以建议另一种方式我可以找到这些信息吗?
答案 0 :(得分:2)
如果您使用Collision类并在其中使用Collision.contacts(这是一组接触点),您应该能够......
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);
}