👨👩👦
【Unity】親と子で衝突判定を別々にする方法
親でOnCollision,OnTriggerなどをしても子オブジェクトの分まで検知してしまいます。そこで親と子で衝突判定を別々にします。
例えば体の部位ごとに衝突判定をしたい時を例にします。
1.一番上の親オブジェクトを空オブジェクトにスクリプトをつけます。
public void HeadHit()
{
Debug.Log("head");
}
public void BodyHit()
{
Debug.Log("body");
}
2.あとはHeadオブジェクトとBodyオブジェクトに以下のスクリプト作成してアタッチ
private void OnTriggerEnter(Collider other)
{
transform.root.gameObject.GetComponent<hogehoge>().BodyHit();
}
まあちょっとスクリプト作成するのがめんどいですけどねw
Discussion
自分はレイヤーで分けることが多いです。
できるだけスクリプトを書きたくないので😁