Rigidbody2D穿过Box Collider 2D

时间:2016-01-19 00:59:01

标签: c# unity3d 2d unity5

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

我遇到的问题是,我已经设置了一个带有rigidbody2d和一个盒子对撞机作为分数的精灵;我试图让它成为当角色经过那个精灵时;它会在分数中加一个,但是当角色试图通过它时,它就会被推回到屏幕的另一侧。

这是因为箱式对撞机当然,但我不知道没有这种方法的任何其他方式。以下是检测角色是否命中管道或得分线的代码:

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

一切都记录得非常好,但问题是这只鸟只是面对分数线并不是应该发生的事情,请尝试帮助或建议我应该做些什么。

P.S。我是新手程序员;我有点知道自己在做什么,但不善于调试和修复它们,谢谢。

1 个答案:

答案 0 :(得分:1)

你应该检查" Is Trigger"在编辑器中的Bird对象碰撞器上。并使用:

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

在鸟类对象脚本中。