Unityの「rigidbody」と「Physic Material」を使って、物理特性を持った跳ねるボールを作りましょう。


#◆はじめに
今回はよく使われている「rigidbody」「Physic Material」機能の使い方紹介します。
いろんな場面で活用できる機能です。

[「rigidbody」](https://docs.unity3d.com/ja/current/Manual/class-Rigidbody.html)、[「Physic Material」](https://docs.unity3d.com/jp/460/Manual/class-PhysicMaterial.html)に関する具体的な説明は、公式を参照してください。

簡単に説明しますと、
オブジェクトに「rigidbody」機能を追加すれば、簡単に物理演算を行ってくれます。
「Physic Material」は衝突するオブジェクトの摩擦や跳ね返り効果を調整できます。

では…
#◆開発環境
macOS Mojave バージョン 10.14.6
Unity 2018.4.12f1
Android SDK
#◆手順
1. 新しいプロジェクト作成
1. 必要なObjectを追加
    1. 床を作成
    2. 物体(ボール)を追加
1. ボールに物理特性を入れる
    1. rigidbody追加
    2. Physic Materialを作る
1. 動作確認

##1.新しいプロジェクト作成

まず、Unity Hubを起動して、 新規作成します。
テンプレートは3Dを選択します、プロジェクト名と保存先は自由です。
<img width="1009" alt="01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541380/6dafc380-b499-5e7b-3f24-376e4646da94.png">

##2. 必要なObjectを追加
###1. 床を作成
「Hierarchy」にて、右クリックし「3D Object」→「Cube」をクリックしてObjectを追加します。
<img width="600" alt="68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3534313338302f61373030306339312d303066302d323361332d336437352d6261313031393930393933642e706e67.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541380/5577d3b1-1b67-681e-868f-4ced86bcbf39.png">

追加したCubeの見た目は床に見えるように調整します。
「Cube」を選択し、「Inspector」→「Transform」中の「Position」と「Scale」を調整します。

自由に調整して構いません。
ここでは、「Position」y=-3、「Scale」x＝20 、y=0.5、z=10に調整しました。
<img width="493" alt="05.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541380/01c4ba1b-2f62-4e2e-ced5-39b8bf98da95.png">
<img width="600" alt="68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3534313338302f66633233313030352d333032392d303337352d323062372d6366626637333435336135382e706e67.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541380/1c80ce2a-57ea-96cb-a240-cf92830b7ec0.png">

###2. 物体を追加

床と同じ方法で、新しい物体を追加します。
「3D Object」→「Sphere」クリックし、ボールを追加します。

名前は「ball」にします。
サイズは初期値のままでも大丈夫ですが、見やすいように若干上に移動しても構いません。
（結構高い所に置くと、ボールがカメラの範囲を超え、見えなくなる可能性ありますので注意してください）

追加完成後、Unity上の「Play」ボタンを押して、Game画面を確認します。
<img width="600" alt="68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3534313338302f30323138653230382d633339332d313535662d356431382d6265616164613465343462632e706e67.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541380/434ff6d9-cf81-521e-8b3a-80a92a7b7d95.png">

##3.ボールに物理特性を入れる
プロパティの意味は、公式サイトがあるので、ここでは詳しい説明は割愛します。
###1. rigidbody追加
追加方法はすごく簡単で、追加したいObjectを選択して（今回は先程追加した「ball」を選択）
「Inspector」中の「Add Component」をクリックし、「Rigidbody」を選択するだけです。
<img width="377" alt="09.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541380/e2ce9bfe-1fdb-1163-b5a8-20ace1eaf04a.png">
###2. Physic Materialを作る

「Project」に右クリックし「Create」→「Physic Material」を選択し追加します。
名前はご自由で、ここでは「ball Physic Material」にします。
<img width="600" alt="68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3534313338302f61383235363032372d623438392d326331322d623936352d6132326661333536343863632e706e67.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541380/c61d6e90-9cd2-b0a8-d441-8e8bf76a821d.png">

追加した「ball Physic Material」を選択し、「Bounciness」を0.9に設定します。
<img width="375" alt="11.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541380/0abc5af7-1e29-8104-f849-0c56fe17f982.png">

「ball Physic Material」は「ball」の「Sphere Collider」の「Material」に入れます。
<img width="650" alt="68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3534313338302f31383838356563372d666365372d626261332d623134622d6238313939346531643239302e706e67.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541380/67e71655-85ee-0553-721a-2bda47a2aab0.png">
##4.動作確認

![t1njp-wisz7.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541380/38a68444-cea2-c333-0d11-953861100ff3.gif)
最後はUnity上部の「Play」ボタン押して、動作確認しましょう。