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

本文关键字:碰撞 停止工作 两个 | 更新日期: 2023-09-27 18:33:42

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

我还有另外两个gameObjetsPolygon Colliders 2d代表地面并排连接。

玩家

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

我正在使用 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");
        }
    }
}

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

嘿,你能尝试添加OnCollisionStay2D(Collision2D coll){//添加在 oncollisionenter 中写的内容} 我猜这应该不会有所帮助,但如果它没有生病,请尝试为您想出另一种方法