FC2ブログ
FC2 Analyzer

DynamicとKinematicの違い

Unity
08 /26 2017
<DynamicとKinematicの違い>

 あらかじめ各種のCollider2Dを登録してあるオブジェクトに、
 Rigidbody2D(Dynamic,Kinematic,Static)登録した場合
 あるいはRigidbody2D登録しなかった場合の違いです。

Dynamic:力を受ける、動かせる
 Gravity(重力加速度)が使用可能(GravityScale設定が可能)
 Mass(質量)設定が可能
 AddForce(力)が使用可能
 velocity(速度)が使用可能

Kinematic:力を受けない、動かせる
 Gravity(重力加速度)が使用不能(GravityScale設定が不能)
 Mass(質量)設定が不能
 AddForce(力)が使用不能
 velocity(速度)が使用可能

Static:力を受けない、動かせない
 Gravity(重力加速度)が使用不能(GravityScale設定が不能)
 Mass(質量)設定が不能
 AddForce(力)が使用不能
 velocity(速度)が使用不能
 基本的に動かさない
 物理演算で動かす場合は、DynamicかKinematicへ変更

Rigidbody2Dなし:力を受けない、物理演算で動かさない
 Staticと同様
 基本的に動かさない
 動かす場合は、位置(transform.position)を変更
 (物理演算は使用できない、collider計算に問題を生じる可能性あり)


・StaticとRigidbody2Dなしは、動かさなければほぼ同じ動作です。
 Staticは、原則動かしませんが、「Simulated」のオフにより、
 物理演算と当たり判定をオフにすることができます。

 Rigidbody2Dなしは、動かさないでStaticの代わりとして使うか、
 物理演算なしで位置を変更して動かします。
 collider計算に問題を生じる可能性あり、原則colliderを持っている、
 Rigidbody2Dのないオブジェクトは動かさない方が良いようです。

DynamicとKinematicの一番大きな違いは、AddForceの利用可否です。
 GravityScaleを0に設定すれば、DynamicもKinematic同様、重力を受けません
 どちらも、velocity変更により、オブジェクトを動かすことができます。

 Kinematicでは、GravityやAddForceのような力を利用できないため、
 スクリプトでvelocityを直接変化させて動かす必要があります。


 <Rigidbody2Dについて>
 http://gamemakerlearning.blog.fc2.com/blog-entry-38.html

スポンサーサイト



コメント

非公開コメント

gamemaker

ゲーム自作を行っていく過程を書き留めていきます。