带有boxcollider的Unity 2D C#hitbox

带有boxcollider的Unity 2D C#hitbox,c#,unity3d,2d,C#,Unity3d,2d,我在屏幕上有一些游戏对象,并在它们上面添加了一个多边形碰撞器来检测与它们的正常碰撞。我想在他们的头上加一个盒子对撞机来探测头像。请问我怎么做?在C#中,如何使用长方体碰撞器而不是多边形碰撞器来声明碰撞 我尝试了这个,但只有多边形碰撞器被检测到 void OnCollisionEnter2D(Collision2D col) { if(col.gameObject.tag == "target") { score += 1000; gameObjec

我在屏幕上有一些游戏对象,并在它们上面添加了一个多边形碰撞器来检测与它们的正常碰撞。我想在他们的头上加一个盒子对撞机来探测头像。请问我怎么做?在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);
    }
}

只需在项目上再添加一个BoxCollider2D组件,并将其放置在头部。
记住要记住这些:

只需在碰撞事件中添加以下内容,就可以轻松检查碰撞的类型:

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
语句中,您可以执行所需操作。

您可以使用标记或层代替所有头部碰撞器,而不是检查特定类型的碰撞器。这将允许您以相同的方式使用其他碰撞器,只需相应地对它们进行标记。没错,我也建议您这样做。我只是想让它尽可能简单,这样他就不需要添加标签和所有这些@lelefantThank。我试试,我已经更新了我的答案,看一看。