玩家是一个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");
}
}
}
答案 0 :(得分:1)
嘿,你可以尝试添加OnCollisionStay2D(Collision2D coll) {//完全添加在oncollisionenter中写的内容 } 我猜这应该有助于不确定,但如果它没有尝试并想到另一种方式为你