我正在尝试为我正在制作的游戏制作一个评分系统;它是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。我是新手程序员;我有点知道自己在做什么,但不善于调试和修复它们,谢谢。
答案 0 :(得分:1)
你应该检查" Is Trigger"在编辑器中的Bird对象碰撞器上。并使用:
void OnTriggerEnter2D(Collider2D col) {
if (col.transform.name == "Score")
Score++;
}
在鸟类对象脚本中。