繁体   English   中英

带BoxCollider的Unity 2D C#Hitbox

[英]Unity 2D C# hitbox with boxcollider

我在屏幕上有一些游戏对象,并在它们上添加了一个多边形对撞机,以检测与它们的正常碰撞。 我想在他们的头上添加一个盒子对撞机以检测爆头。 我该怎么办? 我该如何在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 Component并将其放在头部上即可。 记住要牢记以下几点: https : //docs.unity3d.com/Manual/CollidersOverview.html

您只需将其添加到Collision事件中,即可轻松检查撞到哪种类型的对撞机:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM