如何检测精灵是否正在触摸另一个精灵

时间:2015-06-06 09:13:05

标签: c# unity3d

如何确定精灵(Sprite1)是否位于(Sprite2)之上 当你用精灵触摸另一个精灵时,我需要这个来切换水平。 我试过了:

void OnCollisionEnter2D(Collision2D other)
{
    //code to run
}

但是这使它所触及的一切都运行了代码。 :(

2 个答案:

答案 0 :(得分:0)

你的中途。现在,只要sprite与另一个2D对撞机发生碰撞,您就会运行代码。您需要做的是确定该碰撞器是否是附加到我们想要触发代码的特定精灵的碰撞器。

标记包含关卡出口的对象,并在收到命中时检查标记。

void OnCollisionEnter2D(Collision2D other)
{
    if(other.gameObject.tag == "levelExit")
    {
        Debug.Log("next level");
    }
}

答案 1 :(得分:0)

您应该将包含oncollisioneneter的脚本附加到您的sprite1游戏对象中,例如在您的精灵2游戏对象中添加一个标签,如sp2或任何您想要的,然后在您的脚本中发生碰撞时检查是否一个sprite与之碰撞的对象是精灵2,你用sprite 2的tag属性检查它,就像这个

void OnCollisionEnter2D(Collision2D other)
{
    if(other.gameObject.tag == "sp2")
        {
          //put your change levelcode here
         }
}