Unity事例ノート

UNITY

OnCollisionEnterとOnTriggerEnterの違い

オブジェクトが衝突したときのイベント発生については、OnCollisionEnterとOnTriggerEnter、2つの設定があります。

両方の動きを見ながら、2つの違いについて見ていきましょう。

関連記事:
領域に入っている間と離れたときに発生
オブジェクトから離れるとイベント発生
触れている間はイベントを発生させる
触れた相手のオブジェクト名を取得
ぶつかったオブジェクトと同じカラーにする
ぶつかると逆方向に向きを変えて進む
OnCollisionやOnTriggerで複数オブジェクトを指定
コライダーのサイズを変えるスクリプト
isTriggerをスクリプトから切り替え
プレーヤーがひっくり返らないようにする

オブジェクトの準備

平面、Cube、Sphereのオブジェクトを用意します。

オブジェクトに色をつけて配置を変更。

カメラを動かして、斜めからのアングルにしました。

Sphereにリジッドボディを追加します。

Sphereを動かすために、スクリプトを作成します。

PlayerMove.csを作成して、Sphereに追加しましょう。

PlayerMove.csを記述します。

プレイして動きを確認します。

十字キーの操作で、Sphereをコントロールできています。

次は、CubeにぶつかればSphereが黄色になるようにしましょう。

OnCollisionEnter

OnCollisionEnterから試してみます。

PlayerMove.csを開いて、コードを追加しましょう。

プレイしてみましょう。

キューブにぶつかれば、黄色に変わります。

このように、OnCollisionEnterは、オブジェクト同士がぶつかったときに発生します。

OnTriggerEnter

次は、OnTriggerEnterを試してみましょう。

Cubeを選択し、「トリガーにする」にチェックを入れます。

PlayerMove.csを開いて、コードを編集します。

プレイしてみましょう。

キューブを通過したとき、黄色に変わります。

このように、OnTriggerEnterは、トリガーとなるオブジェクトに侵入したときに、発生します。

コライダーの「トリガーにする」は、侵入される側にチェックを入れます。

場面によって使い分けできる便利な仕組みです。

関連記事:
領域に入っている間と離れたときに発生
オブジェクトから離れるとイベント発生
触れている間はイベントを発生させる
触れた相手のオブジェクト名を取得
ぶつかったオブジェクトと同じカラーにする
ぶつかると逆方向に向きを変えて進む
OnCollisionやOnTriggerで複数オブジェクトを指定
コライダーのサイズを変えるスクリプト
isTriggerをスクリプトから切り替え
プレーヤーがひっくり返らないようにする

この記事の監修・専門指導

枚方市のプログラミング専門スクール
フタバゼミ 枚方くずは校

この記事で解説したUnityやC#の技術も、当校では直接個別指導しています。「むずかしいことをおもしろく」をモットーに、初心者から本格開発までサポート。樟葉駅から徒歩1分、まずはお気軽に体験会へお越しください。

SCHOOL教室案内