2017-03-18 10 views
0

私はいくつかのゲームオブジェクトを画面に表示し、それらに通常の衝突を検出するためにポリゴンコライダーを追加しました。私はヘッドショットを検出するために頭の上にボックスコライダーを追加したいと思います。どうすればいいですか?どのようにC#でポリゴンコライダーの代わりに、ボックスコライダーとの衝突を宣言できますか?boxcolliderのUnity 2D 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

あなたは簡単に自分の衝突のイベントでこれを追加することに見舞われたコライダーの種類を確認することができます:心の中でこれらを維持することを忘れないでください BoxCollider2DまたはPolygonCollider2Dを使用し、それぞれのifステートメントでは、必要な処理を行うことができます。

+0

特定のタイプのコライダーを確認する代わりに、すべてのヘッドコライダーにタグまたはレイヤーを使用することができます。これにより、同じ方法で他のコライダーを使用することができます。 – Lelefant

+1

本当に、私もそれをお勧めします。できるだけシンプルにしようとしていたので、タグやそのすべてを追加する必要はありません@Lelefant – CNuts

+0

ありがとうございました。それをしないでください –

0

を検出なっているだけのアイテムにBoxCollider2Dコンポーネントの1以上を追加して、頭の上に配置します。コライダーであれば、それはチェックします。この場合、

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

} 

https://docs.unity3d.com/Manual/CollidersOverview.html

関連する問題