赤兎ラボ

コーディングからバージョン管理、業務効率化までをまとめます。

Unity衝突判定 親子関係について

 

Unityの衝突判定では時にCollider複数を持ちたいときがあります。

私は攻撃判定用と防御判定で使い分けたりします。

この時発生した親子関係の問題についての解決方法を記載します。

 

 

発生した問題

f:id:RedRabbitNet:20190108075541p:plain

AとBで衝突判定が発生した時、

A.OnTriggerEnter()の引数には親Bが入る

B.OnTriggerEnter()の引数には子Aが入る

 

この時、A.OnTrrigerEnter()内でgameObject.GetComponent<B>()は可能

しかし、B.OnTrrigerEnter()内でgameObject.GetComponent<A>()はエラー

 

解決策

GetComponentInParent<A>()を使う

 

参考

Component - Unity スクリプトリファレンス

 

公式のリファレンスには複数のコンポーネントを取得する関数や

親子関係にあるコンポーネントを取得する関数が記載されています。

各自の組み方によって関数を使い分けましょう。