Rigidbody2D to go through Box Collider 2D

本文关键字:Collider 2D Box through to go Rigidbody2D | 更新日期: 2023-09-27 18:30:58

我正在尝试为我正在制作的游戏制作一个评分系统;它是Flappy Bird的重制版。

遇到的问题是,我设置了一个带有刚体 2d 和盒子碰撞器的精灵作为分数;我试图让它在角色通过那个精灵时;它会在分数上添加一个,但是当角色试图通过它时,它就会被推回屏幕的另一侧。

这当然是因为盒子对撞机,但我不确定没有这种方法还有其他方法可以做到这一点。以下是检测字符是否击中管道或分数线的代码:

void OnCollisionEnter2D (Collision2D hit) {
   if(hit.transform.gameObject.name == "Pipe(Clone)") {
      die();
      Debug.Log("hit");
   }
   if (hit.transform.gameObject.name == "Score(Clone)") {
      Debug.Log("Score");
   }
}

一切都很好,但问题是这只鸟只是面对比分线,这不是应该发生的事情,请尝试帮助或建议我应该怎么做。

附言我是一名新手程序员;我有点知道我在做什么,但是不太擅长调试和修复它们,谢谢。

Rigidbody2D to go through Box Collider 2D

您应该在编辑器中检查 Bird 对象碰撞体上的"是触发器"。并使用:

void OnTriggerEnter2D(Collider2D col) {
     if (col.transform.name == "Score")
           Score++;
 }

在鸟对象脚本中。