2017-03-18 77 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

謝謝。對吧 –