質問: unityのOnCollisionEnterで悩んでいます。 キャラクターにボールが当たったらキャラクターが消えるコードを書いたのですが、実行した瞬間にキャラクターが消えてしまいます。 以下コード ``` void OnCollisionEnter(Collision col){ Destroy (col.gameObject); } ``` キャラクター及びボールにはrigidbody、colliderをアタッチしていて、キャラクターにはさらにcharacter controllerもつけています キャラとボールは床の上に置いてある状態なので床とキャラが接してしまってOnCollisionEnterが呼ばれているのかと思いキャラを浮かせてみましたがそれでもダメでした。 Start関数やUpdate関数にDestoryは入れていないのを確認したので、確かに実行した瞬間にOnCollisionEnterが呼ばれているのですが、なぜ呼ばれているのでしょうか 回答宜しくお願いします。
回答: Colliderの種類を確認し、MeshColliderで試してみてはいかがでしょうか 下記動画の1:45当たりを見て頂くとわかり易いと思いますが、 あたり判定がオブジェクトの大きさと一致していないということも考えられると思います。 ボール、床、キャラとそれぞれチェックしてみて下さい。 また、 Debug.Log(collision.transform.name); とすると、何と衝突しているかわかると思います。