Unity衝突判定 親子関係について
Unityの衝突判定では時にCollider複数を持ちたいときがあります。
私は攻撃判定用と防御判定で使い分けたりします。
この時発生した親子関係の問題についての解決方法を記載します。
発生した問題
AとBで衝突判定が発生した時、
A.OnTriggerEnter()の引数には親Bが入る
B.OnTriggerEnter()の引数には子Aが入る
この時、A.OnTrrigerEnter()内でgameObject.GetComponent<B>()は可能
しかし、B.OnTrrigerEnter()内でgameObject.GetComponent<A>()はエラー
解決策
GetComponentInParent<A>()を使う
参考
公式のリファレンスには複数のコンポーネントを取得する関数や
親子関係にあるコンポーネントを取得する関数が記載されています。
各自の組み方によって関数を使い分けましょう。