▼そのUnityの作業、依頼しませんか?
基本知識

【Unity】当たり判定とは?Colliderが当たり判定には必要

Unityでの当たり判定の説明と使う条件
  • Unityでの当たり判定の仕組みや作り方がよくわからない

という悩みを解決します。

この記事では、

  • 当たり判定とは
  • 当たり判定をするための2つのモード
  • Collisionモードの説明(条件、メソッド)
  • Triggerモードの説明(条件、メソッド)

また2Dでも3Dでも当たり判定の基本は同じです。

当たり判定とはオブジェクト同士が衝突したかどう検出する仕組み

当たり判定は「オブジェクト同士が衝突したか検出する仕組み」です。当たり判定がなければ、オブジェクトは当たったときの処理を実行できません。

オブジェクト同士が衝突したときに発生するのが「当たり」と考えてください。その衝突したのか検出する(判断)することを「当たり判定」とです。

当たり判断があることによって、衝突後にオブジェクトを破壊する、オブジェクトを移動ささせるなどの処理を設定できます。

当たり判定を作るには2つの方法がある

そんなオブジェクト同士の衝突を検出してくれる「当たり判定」を作る2つの方法があります。

  1. 【スクリプト】
  2. 【Physics】

この2つの方法で当たり判定を作成することができます。

①の【スクリプト】を使って当たり判定を行う方法は、オブジェクト同士の距離が◯以下になったらと設定して当たり判定を行う方法です。

②の【Physics】はスクリプトを基本使うことなく当たり判定を作ることができます。非常に簡単です。この記事では【Physics】を使って当たり判定を作成していきます。

【Physics】を使った当たり判定にはCollisionモードとTriggerモードがある

  • Collisionモード
  • Triggerモード

この2つのモードがあります。

Collisionモード

Collisionモードとは

UnityでColliderモード

Collisionモードだと物理的な当たり判定で、オブジェクト同士がぶつかり、衝突検出+衝突応答も実行されます。青い物体にボールを白いぶつけています。

衝突検出
→オブジェクトとぶつかったことを検出(または青い柱とぶつかったことを検出)

衝突応答(衝突したあと)
→ボールと柱がぶつかったことにより、動いている

です。

Collisionモードを使うための条件やColliderモードのときにだけ使えるメソッドがあります。

Collisionモードを使う条件

  • 判定したいオブジェクトすべてにColliderコンポーネントがアタッチされている
  • 判定したいオブジェクトすべてにRigidbody(またはRigidbody2D)コンポーネントがアタッチされている
  • 判定したいオブジェクトすべてのColliderの【Is Trigger】がfalse(チェックなし)である

判定したいオブジェクトが上の条件を満たしていなければ、Collisionモードを使うことができません。

Rigidbodyコンポーネントといっていますが、2Dの場合でいうRigidbody2Dを表しています。

Collisionモードで使えるメソッド

2Dで使えるメソッド

OnCollisionEnter2D接触したときに呼び出される
OnCollisionStay2D接触している間呼び出される
OnCollisionExit2D接触して、離れた瞬間に呼び出される

これらです。

3Dで使えるメソッド

OnCollisionEnter接触したときに呼び出される
OnCollisionStay接触している間、呼び出される
OnCollisionExit接触して、離れた瞬間に呼び出される

これらです。

Collisionモードについてもっと深く知るにはこちら

こちらの【Unity】当たり判定【Collision】モードの設定方法、メソッドの使い方で説明しています。

当たり判定【Collision】モードの設定方法、メソッドの使い方
【Unity】当たり判定【Collision】モードの設定方法、メソッドの使い方UnityでのCollisionを使った当たり判定の使い方を知りたい その悩みを解決します。 この記事では「Collisionモードの説明」、「Collisionモードを使う条件」、「Collision系のメソッドの使い方、説明」 この3つを行います。 Gifを使って簡単に説明していきますので、ゆっくりご覧ください。...

Triggerモード

Triggerモードとは

Unityでいうtriggerモード

Triggerモードだとは検出だけ行い、あとはすり抜けます。ボールが他のオブジェクトに衝突したという検出は受け取りますが、物理的衝突しません。

Triggerモードを使う条件

  • 判定したいオブジェクトすべてにColliderコンポーネントがアタッチされている
  • 判定したいオブジェクトの最低限一方にRigidbody(またはRigidbody2D)コンポーネントがアタッチされている
  • 判定したいオブジェクトの最低限一方のColliderの【Is Trigger】がtrue(チェックあり)である

判定したいオブジェクトが上の条件を満たしていなければ、Triggerモードを使うことができません。

Rigidbodyコンポーネントといっていますが、2Dの場合でいうRigidbody2Dを表しています。

Triggerモードで使えるメソッド

2Dで使えるメソッド

OnTriggerEnter2Dトリガーに接触したときに呼び出される
OnTriggerStay2Dトリガーに接触している間呼び出される
OnTriggerExit2Dトリガーに接触して、離れた瞬間に呼び出される

これらです。

まあトリガーっていってますけど、オブジェクト同士が接触したときって発想で良いです。厳密には違いますが、わかりやすい方が良いもんね。

3Dで使えるメソッド

OnTriggerEnterトリガーに接触したときに呼び出される
OnTriggerStayトリガーに接触している間、呼び出される
OnTriggerExitトリガーに接触して、離れた瞬間に呼び出される

これらです。

Triggerモードをもっと詳しく知るにはこちら

【Unity】当たり判定【Trigger(トリガー)】モードの設定方法、メソッドの使い方をご覧ください。

T当たり判定のトリガーの使い方
【Unity】当たり判定【Trigger(トリガー)】モードの設定方法、メソッドの使い方「Trigger(トリガー)を使った当たり判定の使い方を知りたい」その悩みを解決します。この記事では「triggerモードの説明」、「Triggerモードを使う条件」「Trigger系のメソッドの使い方、説明」この3つを行います。...

まとめ

  • 当たり判定は【スクリプト】か【Physics】で作ることができる
  • 【Physics】を使った当たり判定にはCollisionモードとTriggerモードがある

●Collisionモードを使う条件

  • 判定したいオブジェクトすべてにColliderコンポーネントがアタッチされている
  • 判定したいオブジェクトすべてにRigidbodyコンポーネントがアタッチされている
  • 判定したいオブジェクトすべてのColliderの【Is Trigger】がfalse(チェックなし)である
OnCollisionEnter2D接触したときに呼び出される
OnCollisionStay2D接触している間呼び出される
OnCollisionExit2D接触して、離れた瞬間に呼び出される
 
OnCollisionEnter接触したときに呼び出される
OnCollisionStay接触している間、呼び出される
OnCollisionExit接触して、離れた瞬間に呼び出される
 

●Triggerモードを使う条件

  • 判定したいオブジェクトすべてにColliderコンポーネントがアタッチされている
  • 判定したいオブジェクトの最低限一方にRigidbodyコンポーネントがアタッチされている
  • 判定したいオブジェクトの最低限一方のColliderの【Is Trigger】がtrue(チェックあり)である
OnTriggerEnter2Dトリガーに接触したときに呼び出される
OnTriggerStay2Dトリガーに接触している間呼び出される
OnTriggerExit2Dトリガーに接触して、離れた瞬間に呼び出される
OnTriggerEnterトリガーに接触したときに呼び出される
OnTriggerStayトリガーに接触している間、呼び出される
OnTriggerExitトリガーに接触して、離れた瞬間に呼び出される

まとめが長い。すまない。

当たり判定【Collision】モードの設定方法、メソッドの使い方
【Unity】当たり判定【Collision】モードの設定方法、メソッドの使い方UnityでのCollisionを使った当たり判定の使い方を知りたい その悩みを解決します。 この記事では「Collisionモードの説明」、「Collisionモードを使う条件」、「Collision系のメソッドの使い方、説明」 この3つを行います。 Gifを使って簡単に説明していきますので、ゆっくりご覧ください。...
T当たり判定のトリガーの使い方
【Unity】当たり判定【Trigger(トリガー)】モードの設定方法、メソッドの使い方「Trigger(トリガー)を使った当たり判定の使い方を知りたい」その悩みを解決します。この記事では「triggerモードの説明」、「Triggerモードを使う条件」「Trigger系のメソッドの使い方、説明」この3つを行います。...

さぎのみや(@saginomiya8)でした。SNSでシェアしてね( ・∇・) 一生無双モードで頑張る。

ABOUT ME
さぎのみや
さぎのみや
超書手。現在はUnityメディア「ユニシャー」の運営とゲーム開発がメインです。Unity、ライティング関係のお仕事お待ちしております。 >>詳しいプロフィール >>Amazonほしいものリスト
【Unity3D】新しいサンプルゲーム(チュートリアル)を作りました!!!
Unity有料サンプルゲーム

「Unityで3Dゲームを本格的に作っていきたい!」という人におすすめのチュートリアルとなっています。

画像のようなゲームの作り方を販売しています。色々と応用できるサンプルゲームとなっています。ぜひ、作ってみてください。

詳細
>>【Unity3Dサンプルゲーム・チュートリアル】「フリスビーを犬に届けよ!」の概要

>>BOOTHでこのチュートリアルを見る

【RT・フォローであなたのスキルが上がる】

シェアフォローする

さぎのみやのモチベが上がる

コンテンツの質が上がる

あなたの能力も上がる

あなたの
Twitterでのシェア

であなたの能力が上がります。

>>さぎのみやのツイッター(@saginomiya8)

 

COMMENT

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

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください