【问题标题】:Unity Sphere Collision统一球体碰撞
【发布时间】:2014-04-01 11:11:16
【问题描述】:

我知道 Unity 有很多方法可以确定一个对象是否在另一个对象内部,它们是否正在接触等等,但我想知道的是更具体的东西。

在我的研究中,我发现了Physics.OverlappedSphere,据我所知,这为您提供了有关球体内每个带有对撞机的对象的信息。我想知道的是,如果我有两个使用 Physics.OverlappedSphere 的球体,我能找出这些球体在哪个点相遇和相交吗?

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

【问题讨论】:

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


    【解决方案1】:

    如果您使用 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);
        }
    }
    

    尝试获取联系人数组的大小并查看最后的点。

    // 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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-11
      相关资源
      最近更新 更多