Unity事例ノート

UNITY

OnCollisionEnterとOnTriggerEnterの違い

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

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

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

Udemy わかる!Unity C# ゲーム開発講座

オブジェクトの準備

平面、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をスクリプトから切り替え
プレーヤーがひっくり返らないようにする

\ Udemyで講座はじめました /

Udemy わかる!Unity C# ゲーム開発講座

SCHOOL教室案内