Unityでの物理演算
物理演算(Physics)とは、現実における物理的な動き(重力、衝突、摩擦など)をゲーム内で再現するための仕組みです。
Unityには物理演算エンジンが組み込まれており、シーン上のオブジェクトに対して物理的な動作を簡単に追加できます。
物理演算用の基本的なコンポーネント
Rigidbody
Rigidbodyは、オブジェクトに物理演算を適用するためのコンポーネントです。
追加すると重力の影響を受けて落下したり、衝突時に力を加えることができます。
ヒエラルキー上で 3D オブジェクトを追加した場合、デフォルトではRigidbodyを持たないため、後から追加する必要があります。
例えば、Planeを配置し、その上空にCubeを追加してCubeにRigidbodyコンポーネントを追加すると、
実行時にCubeが落下するようになります。

2Dの場合は、Rigidbody2Dコンポーネントを追加します。
Collider
Colliderは、物理的な衝突判定を行うコンポーネントです。
BoxCollider、SphereCollider、CapsuleColliderなど、形状に応じたコライダーが用意されています。
ヒエラルキー上で 3D オブジェクトを追加すると、デフォルトでColliderがアタッチされています。
RigidbodyのみでColliderがない場合、オブジェクトは他のオブジェクトをすり抜けてしまいます。

2Dの場合は、2D用のColliderコンポーネントを追加します。
Physics Material(物理マテリアル)
物理演算の摩擦や跳ね返りを設定するためのマテリアルです。
UnityEditor のメニューから、Assets → Create → Physics Materialを選択することで、Physics Materialを作成できます。

例えば、Bounciness(跳ね返り具合)を1に設定し、Physics MaterialをCubeのColliderに適用します。

地面に衝突した後跳ね返るようになります。

PhysicsMaterialにもPhysicsMaterial2Dがあります。
注意する点
ColliderにはMeshColliderもあります。
これは 3D モデルの形状に合わせてコライダーを生成するものですが、
形状が複雑になると衝突判定の計算負荷も増加します。
見た目通りに厳密に判定する必要が無ければ、球やボックス、カプセルで大まかな形状にするとよいでしょう。
まとめ
今回は物理演算の基本的な設定について説明した。
特にコードを書かなくても簡単に物理演算を実装できます。
もちろんゲームに取り込むためにはルールに沿った形で調整する必要があります。
今後はオブジェクトへの力の加え方、衝突時のイベントの実装方法などを見ていきたいと思います。