[Unity Tips]Rigidbodyでの当たり判定取得


広告




 

Unity Tipsです。
コードはC#となります。

Rigidbodyが設定されている3Dオブジェクトの
当たり判定を取得する方法です。

// 衝突した瞬間を検出
void OnCollisionEnter(Collision other)
{
    // 処理を書く
}

// 衝突したオブジェクトが離れる瞬間を検出
void OnCollisionExit(Collision other)
{
    // 処理を書く
}

// 衝突中を検出
void OnCollisionStay(Collision other)
{
    // 処理を書く
}

isTrigerを設定している場合は下記で取得。
※isTrigerがtrueだと衝突の検出のみになります

// 衝突した瞬間を検出
void OnTriggerEnter(Collider other)
{
    // 処理を書く
}

// 衝突したオブジェクトが離れる瞬間を検出
void OnTriggerExit(Collider other)
{
    // 処理を書く
}

// 衝突中を検出
void OnTriggerStay(Collider other)
{
    // 処理を書く
}

2017/05/07 引数誤りを修正 phinさんご指摘ありがとうございますm(_ _)m
2017/07/01 Colliderが設定されているオブジェクトにはRigidbody必須

衝突したオブジェクト情報は
引数のCollisionに格納されています。

// 衝突した瞬間を検出
void OnCollisionEnter(Collision other)
{
    // 対象のクラスが取得可能かチェック(もっといい方法あるかも)
    [Class] c = other.rigidbody.GetComponent<[Class]>();
    if(c != null)
    {
        // 処理を書く
    }
}

何か間違い等がありましたらコメント等で
ご指摘頂けるとありがたいです。

 

広告





[Unity Tips]Rigidbodyでの当たり判定取得」への2件のフィードバック

phin へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です