我正在尝试使用Unity创建一个通用的“Snake”游戏,以加强我对C#和Unity基础知识的了解。
我遇到的问题是,当与身体发生碰撞时,我似乎无法将玩家带到Game Over。目前我的冲突检查设置如下:
void OnTriggerEnter2D(Collider2D other)
{
if (other.gameObject.CompareTag("Border") || other.gameObject.CompareTag("Body")) //if the player collides with a Border tag or Body tag...
{
//Game Over Sequence
GameOver();
}
else if (other.gameObject.CompareTag("Collectable")) //otherwise if the player collides with a Collectable tag...
{
//Snek needs to grow!
shouldGrow = true;
}
}
这是蛇身预制检查员的照片。我检查确保标签设置为Body。
边界碰撞工作正常,奇怪的部分是将边框对象设置为“Body”标签也工作正常,所以我不确定为什么体段没有触发游戏结束序列。 / p>
我是编程的新手,如果这个问题很明显,我很抱歉,但我不明白为什么这不起作用。
提前致谢!
编辑:根据程序员的要求,这里是边境检查员之一的图像:
答案 0 :(得分:4)
勾选'是触发器'在Snake_Body的盒子对撞机上。如果没有这个,则不会调用OnTriggerEnter2D
函数。您已在边框对撞机上正确完成此操作。