Unity事例ノート

UNITY

発射したオブジェクトのすり抜けを防ぐ

オブジェクトを発射したとき、パワーが大きすぎると壁をすり抜けてしまうことがあります。

ぶつかってもすり抜けてしまわないように、リジッドボディの衝突判定の設定を行いましょう。

弾がすり抜けないようにする

Planeの上にCubeで壁をつくりました。

空のオブジェクトを作成。

ここからボールを発射できるようにします。

発射するオブジェクトとして、Sphereを用意します。

リジッドボディを追加し、衝突判定を連続的に変更します。

Sphereをプレハブ化します。

Sphereの元データは削除しましょう。

BallShot.csを作成し、GameObject(空のオブジェクト)に追加します。

BallShot.csを記述します。

プレハブのフィールドに、Sphereを入れます。

ゲームプレイして、クリックしてみましょう。

AddFordeで5000のパワーを加えています。

通常は壁をすり抜けてしまうぐらいのパワーですが、衝突判定を「連続的」に設定すれば、壁にぶつかってストップします。

SCHOOL教室案内