

Unityを始めたばかりの初心者です。  
Unityでゲームを作っているのですが、プレイヤーとエネミーが衝突した時の判定がうまくいかず悩んでいます。  
具体的にはプレイヤーのコードを

[code]

    void OnTriggerEnter2D(Collider2D col)
    {   
        if (col.gameObject.CompareTag("地面"))
        {
            Debug.Log("着地");
        }
        if (col.gameObject.CompareTag("エネミー"))
        {
            Debug.Log("衝突");
        }
    }
    
[/code]

としているのですが、ログを見ると地面の着地はうまくいっているのですが、エネミーとの衝突が1回のみ衝突してるはずがログに2回「衝突」と表示されてしまいます。  
どうすれば1回の衝突で1回の処理になるのでしょうか。  
よろしくお願いします。


CC BY-SA 3.0
2017-11-29T01:47:24.980
39925
2020-10-23T05:04:30.450
2017-11-29T02:29:53.647
19110
26371
question
unity2d
Unityの衝突判定


使用されているcollider の問題ではないでしょうか。  
こちらを参考にしてみてください。

<https://answers.unity.com/questions/1474400/ontriggerenter2d-gets-called-
twice-sometimes.html>


CC BY-SA 4.0
2018-09-19T08:20:14.383
48548
2018-09-19T08:20:14.383
30170
39925
answer