DynamicとKinematicの違い
Unity
<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
あらかじめ各種の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
スポンサーサイト
コメント