質問: CoinCount; Destroy(col.gameObject); //コインを消す } } ``` ### 試したこと ※1.円(Circle Collider)を小さくした場合、横向きに当たった場合は問題ないのですが 下に少し飛び出てる部分に当たってしまうと判定をとられてしまいます。 ※2.OnCollisionEnter2Dを使用すると二重に判定を取られることはなくなりましたが アイテムを取る際の判定時に何かにぶつかったような感じで違和感があったため今回は 使用するのをやめるました。 ※3.キャラクターにゲームオブジェクト(enpty)「子」として追加しそれに 円(Circle Collider)を追加しましたが結果は変わりませんでした。 ### (追記)レイヤーによる判定 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/2d26ede6fee6c9e8a77aaba4df56e4f9.png) **CircleとCoinにレイヤーを追加** ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/1a88b3a13e81ec5c814846e34367b162.png) **CoinとCircleとのチェックを外す** これでコインだけ反応しないようになりました。 Unity 2019.2.8f1 言語:C#
回答: 「試したこと」の※3に親子関係を作ってみたとありますが、親オブジェクトは子オブジェクトのコライダーにも反応します。 一方、子オブジェクトは親オブジェクトのコライダーに反応しないので、“空のゲームオブジェクト”の子として”長方形のコライダー”と”円のコライダー”を別々に用意し、**その子オブジェクトのどちらか一方にOnTriggerEnterの処理を書く**と当たり判定は1回しか呼ばれないと思います。