1. ホーム
  2. c#

[解決済み] UnityでOnCollisionEnterが呼ばれない

2022-02-08 01:17:38

質問

これについては、ほぼすべての回答を確認しましたが、それらはほとんど単純なミスや間違いでした。 私の問題は、他のリジッドボディと衝突した場合でもOnCollisionEnterが呼び出されないことです。

呼び出されない部分はこちらです。

 void OnCollisionEnter(UnityEngine.Collision col) {
        Debug.Log("collision!!!");
        foreach(ContactPoint contact in col.contacts) {
            //checking the individual collisions
            if(contact.Equals(this.target))
            {
                if(!attacking) {
                    Debug.Log("hitting target");
                } else {
                    Debug.Log("dying");
                    //engage death sequence
                }
            }
        }
    }

衝突!!"のメッセージすら表示されない。使い方を間違って理解しているのか、それとも何か忘れているのでしょうか?

解決方法は?

2Dコライダーとリジッドボディを使用していますか?もしそうなら、この関数の代わりに OnCollisionEnter

void OnCollisionEnter2D(Collision2D coll)
    {
        Debug.Log(coll.gameObject.tag);

    }