当与另外两个碰撞器同时碰撞时,碰撞停止工作

时间:2014-12-09 23:31:46

标签: c# unity3d

玩家是一个Circle Collider 2d的轮子,当它与地面碰撞时可以跳跃和移动(isGrounded变量)。

我还有两个gameObjets Polygon Colliders 2d代表地面并且并排连接。

玩家工作得很完美,但是当它同时碰撞两个地面时,即使玩家仍然站在其中一个地面上,碰撞也不再有效。 变量isGrounded变为false并失去对不会移动或跳跃的玩家的控制。

我正在使用Unity3d 4.5

public class Wheel : MonoBehaviour {

    void OnCollisionExit2D(Collision2D collision){
        if(collision.gameObject.tag == "Ground"){
        Global.IS_PLAYER_GROUNDED = false;
        //Debug.Log("exit");
        }
    }   

    void OnCollisionEnter2D(Collision2D collision){
        if(collision.gameObject.tag == "Ground"){
            Global.IS_PLAYER_GROUNDED = true;
            //Debug.Log("enter");
        }

    }
}

1 个答案:

答案 0 :(得分:1)

嘿,你可以尝试添加OnCollisionStay2D(Collision2D coll) {//完全添加在oncollisionenter中写的内容 }  我猜这应该有助于不确定,但如果它没有尝试并想到另一种方式为你