【Unity2D】物体に弾性を持たせて跳ねるようにする

前回までの記事で、物体を落下させて衝突させることができました。

準備

まず画面上に円と四角のスプライトを配置します。
それぞれにRigidBody2Dコンポーネントを追加します。ここまでが先日の記事の内容です。手順に関してはこちらの記事をご覧ください。
【Unity2D】物体を重力で落下させる

円のスプライトが落下し、四角のスプライトで止まります。
459C3EF0-B78E-4B2F-8320-F54D649FBDF3.png

マテリアルを用意する

物体に弾性を持たせるには、マテリアルを使用します。
マテリアルは素材の性質を定義するためのもので、2Dの物理衝突には「2D物理マテリアル」を使用することになります。
Assets上で右クリックし、「作成」->「2D物理マテリアル」をクリックします。
6C45BD5B-A98D-49DB-AF67-7FA28BB92F1D.png

「2D物理マテリアル」が作成されるので適当に名前をつけておきます。
(ここではMaterialsフォルダーを作成し、そのフォルダーの中にマテリアルを作成しました。)
21D7D11D-D00C-4D32-A0C2-4D519F93F27E.png

弾性を設定する

上記で作成したマテリアルをクリックし、インスペクターを見てください。
二つの項目があります。Frictionが摩擦でBouncinessが弾性です。
現在のUnityのバージョン(2019.3.2f1)では日本語に設定しても英語で表記されます。
ここではBouncinessを0.7に設定しました。
3A9F105D-94B4-407D-B8A1-56BEFF069999.png

マテリアルを物体に設定する

上記で作成したマテリアルをゲームオブジェクトに追加します。
ゲームオブジェクト(ここでは円のスプライト)をクリックし、インスペクターで「Rigidbody 2D」を探します。

「Rigidbody 2D」の「マテリアル」の項目を探します。ここにAssetsに作成した「2D物理マテリアル」をドラッグ&ドロップします。
39F7AAD9-9987-4727-9C87-ADE13A2952E5.png
マテリアルが追加されました。

実行する

この状態で実行してみます。
マテリアルを追加する前は四角のスプライトに衝突して停止しました。
マテリアルを設定した後は何回か弾んでから停止するようになりました。