LoginSignup
16
7

More than 3 years have passed since last update.

【Unity】 子オブジェクトの衝突が検知される条件

Last updated at Posted at 2019-05-14

Unityにおいて、子オブジェクトの衝突が検知されるパターンと検知されないパターンが少しだけややこしかったのでメモ程度に残しておきます。初歩的な内容になっています。

検証準備

落下する方のCubeにRigidbodyをつけて、
スクリーンショット 2019-05-14 16.21.02.png

空のゲームオブジェクトの子にCubeを置いておく
スクリーンショット 2019-05-14 16.25.05.png

親のゲームオブジェクトの方に以下のスクリプト(CollisionCheck.cs)をつけて衝突判定の有無を調べる

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CollisionCheck : MonoBehaviour
{
    private void OnCollisionEnter(Collision col){
        Debug.Log("当たったよ");
    }
}

パターン1 この状態で実行してみる

この状態(親はスクリプトのみがついていて、子にColliderがついている状態)で実行すると

スクリーンショット 2019-05-14 16.30.03.png

検知されませんね

パターン2 親にRigidbodyをつけて実行する

というわけで、下の様に親の空のゲームオブジェクトにRigidbodyをつけて実行すると、(UseGravityは切って、動かない様にisKinematicをtrueにしてます)

スクリーンショット 2019-05-14 16.34.27.png

すると、

スクリーンショット 2019-05-14 16.37.10.png

無事、コンソールに出力されました。

ということで、親にRigidbodyをつけていると、子のColliderの衝突検知もされるとのことです。

子の当たり判定が反応しない!という風に困っている方がいれば是非参考にしてください。

16
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
7