Unity事例ノート

UNITY

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

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

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

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

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

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

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

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

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

Sphereをプレハブ化します。

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

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

BallShot.csを記述します。

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

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

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

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

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

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

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

SCHOOL教室案内