Unity OnTriggerEnter2D CompareTag || CompareTag不一致

时间:2016-05-02 23:33:41

标签: c# unity3d

我正在尝试使用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>

我是编程的新手,如果这个问题很明显,我很抱歉,但我不明白为什么这不起作用。

提前致谢!

编辑:根据程序员的要求,这里是边境检查员之一的图像:

1 个答案:

答案 0 :(得分:4)

勾选'是触发器'在Snake_Body的盒子对撞机上。如果没有这个,则不会调用OnTriggerEnter2D函数。您已在边框对撞机上正确完成此操作。