1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【unity】衝突判定を実装する

Posted at

はじめに

2Dにて衝突判定を実装したことはあるが、その際は特殊な方法(ダミーのオブジェクトをプレイヤーの周囲に配置して判定していた)で行っていた。
今回3Dにて衝突判定を行ったため、メモ。

内容

特殊なメソッドであるところのOnCollisionEnter()を実装する。
このメソッドは、メソッド名の通りアタッチされているオブジェクトの当たり判定の内部に別の当たり判定がぶつかった(正確には重なった)時に呼ばれるメソッドとなる。

衝突判定
    /// <summary>
    /// 衝突した際に呼ばれるメソッド
    /// </summary>
    /// <param name="collision">衝突したオブジェクトとの衝突情報</param>
    void OnCollisionEnter(Collision collision)
    {
        // タグが「objectA」のオブジェクトと衝突した場合
        if (collision.gameObject.tag == "objectA")
        {
            // ここに処理を書く
        }
        // 名前が「objectB」のオブジェクトと衝突した場合
        else if (collision.gameObject.name == "objectB")
        {
            // ここに処理を書く
        }
    }

詳細

上のコードを見ていただければおそらくわかっていただけるだろうが、一応説明をしておく。
collision.gameObjectにてオブジェクトを取得し、そのタグや名前にて絞り込みを行って、衝突したオブジェクトを特定している。
(ほかにも絞り込みの方法がある可能性もあるが、ここでは割愛させていただく。)

まとめ

これで衝突判定を行う際に、衝突したオブジェクトによって処理を変えることができるようになる。

参考文献

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?