Unity 2D C#hitbox with boxcollider

时间:2017-03-18 14:23:05

标签: c# unity3d 2d

我在屏幕上有一些游戏对象,并在它们上面添加了一个多边形对撞机来检测与它们的正常碰撞。我想在他们的头上添加一个盒子对撞机来检测爆头。我该怎么办?我如何在C#中声明与箱式对撞机而不是多边形对撞机碰撞?

我试过这个,但只检测到多边形对撞机

void OnCollisionEnter2D(Collision2D col) {
    if(col.gameObject.tag == "target")
    {
        score += 1000;
        gameObject.SetActive (false);
        gameObject.SetActive (true);
        Destroy (col.gameObject);
    }
    else if(col is BoxCollider2D)
    {
        score += 2000;
        gameObject.SetActive (false);
        gameObject.SetActive (true);
        Destroy (col.gameObject);
    }
}

2 个答案:

答案 0 :(得分:0)

只需在物品上再添加一个BoxCollider2D组件并将其放在头上即可。 请记住要记住这些:https://docs.unity3d.com/Manual/CollidersOverview.html

答案 1 :(得分:0)

只需在碰撞事件中添加此对撞机,即可轻松查看撞击器的类型:

void OnCollisionEnter(Collision col)
{
    if (col is BoxCollider2D)
    {
        //When it hits the box
    }
    else if(col is PolygonCollider2D)
    {
        //When it hits the polygon
    }

}

在这种情况下,它将检查对撞机是BoxCollider2D还是PolygonCollider2D,并且在每个if语句中,您可以执行所需的操作。