うさがにっき

読書感想文とプログラムのこと書いてきます

Unityの物理演算を理解する(Rigidbody 2D、Collider、Physics Material 2D)

概要

Unityの物理演算を理解する
Rigidbody 2D…物理演算を扱うオブジェクト
Collider…当たり判定を扱うオブジェクト
Physics Material 2D…摩擦と跳ね返りを管理するオブジェクト

詳細

Unityの物理演算、当たり判定、跳ね返りを扱う

物理演算

Rigidbody 2D

ゲームオブジェクトを選択した状態でAdd Componentを押下、Rigidbody 2Dを追加する
f:id:tiro105:20140621224648p:plain

Rigidbody 2Dのメニュー

Mass オブジェクトの重さ
Linear Drag オブジェクトが移動する際にかかる抵抗の大きさ
Gravity Scale オブジェクトが重力に影響される大きさ
Fixed Angle オブジェクトが回転するかどうか
Is Kinematic オブジェクトが物理エンジンの影響を受けるか
Interpolate スムージングを行うか決める

f:id:tiro105:20140621224736p:plain

当たり判定

Collider

ゲームオブジェクトを選択した状態でAdd Componentを押下、Circle Collider2Dを追加する

Circle Collider2Dメニュー

Material 摩擦や跳ね返りなどの設定
Is Trigger 当たり判定をトリガーとして使用するかの設定
Radius 当たり判定の大きさを設定
Center 当たり判定の中心座標を設定

f:id:tiro105:20140621224811p:plain

Rigidbody2Dと組み合わせることで、オブジェクト同士を衝突させることが出来る
他にも四角形の当たり判定のBox Collider、任意のPolygon Colliderがある

摩擦と跳ね返り

Physics Material2D

プロジェとビューで右クリック、Create→Physics2D Materialを選択
作成したPhysics2D Materialは選択後、インスペクタビューで設定を確認できる
f:id:tiro105:20140621224836p:plain

Friction 摩擦係数 0.0〜1.0
Bounciness 跳ね返り係数 0.0〜1.0

f:id:tiro105:20140621224854p:plain

ゲームオブジェクトを選択し、Materialを選択
select PhysicsMaterial 2Dから先ほど作ったPhysics2D Materialを選ぶ
跳ね返りを0にすれば、オブジェクトの着地時跳ねなくなる
逆に1にすれば常に同じ距離だけ跳ねる