【Unity2D】物体を重力で落下させる

 

物体を落下させる

スプライトを重力で落下させる処理もUnityでは簡単に実装できます。
ここでは物理処理を行うようにしたスプライトを物体と呼ぶことにします。
物体同士を衝突させることもできるのですが、それは別の記事で書こうと思います。

画像をUnityに追加する

最初にゲームに配置する画像を用意します。画像は適当なソフトを使って作成してください。
ここでは例として、128×128ドットサイズの丸と四角を用意しました。
画像ファイルをUnityのAssetsへドラッグ&ドロップします。
0B2F76E9-14AE-4B56-B1DD-4033977E9527.png

画像をスプライトとして配置する

Assets内の画像をシーンのヒエラルキーへドラッグ&ドロップします。
038D0C5B-1A67-46E0-B9F4-5DB59F4CEC21.png

シーンにスプライトとして配置されます。
このままでは、この位置に画像が表示されますが動くことはありません。

スプライトにRigidBody2Dコンポーネントを加える

スプライトにRigidBody2Dコンポーネントを追加します。
シーンのヒエラルキーからスプライトをクリックして選択します。
インスペクターの「コンポーネントを追加」をクリックし、「2D物理」->「2Dリジッドボディ 」をクリックします。
5BC12FFC-CEF3-4CB7-B583-85EE58AA063F.png

Rigidbody2Dが追加されました。
423A61BF-C678-41C9-9407-1E2319835457.png

シーンに配置した円と四角の両方にRigidbody2Dを追加しておきます。

ゲームを実行する

再生ボタンを押してゲームを実行します。
8706CC16-C84D-4ADB-BD3F-942E2B805A83.png

画面に配置したスプライトが画面下へ落下していきます。

このままですと永遠に落下し続けてしまいます。
四角の方の物体を「静物」に変更して動かなくしてみます。
インスペクターの「ボディタイプ」を「動的」から「静的」に変更します。
E5CFC03D-89E8-4A8E-80FF-D35FD47773FB.png

実行すると、円だけが落下します。
ただ、このままでは円が四角をすり抜けていきます。
これは衝突処理が実行されていないためです。
物体同士の衝突処理を行う方法は別の記事で書く予定です。