2017-03-18 65 views
0

我在屏幕上有一些游戏对象,并在它们上面添加了一个多边形对撞机来检测与它们的正常碰撞。我想在他们的头上添加一个箱子对撞机来检测爆头。我该如何做到这一点?我如何在C#中使用框对撞机而不是多边形对撞机进行碰撞?Unity 2D与boxcollider的C#hitbox

我试过,但是越来越检测

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); 
    } 
} 
+0

我已经更新了我的回答。 – CNuts

回答

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

+0

而不是检查对撞机的具体类型,您可以使用标记或层来代替所有头撞机。这将允许您以相同的方式使用其他碰撞体,只需相应地标记它们。 – Lelefant

+1

没错,我也会推荐。我只是想尽量保持简单,所以他不需要添加标签和所有@Lelefant – CNuts

+0

谢谢。对吧 –