Unity

Unityで物理シミュレーションとイベントハンドラの挙動

More than 1 year has passed since last update.

物理シミュする際、まずやること

  • 物理シミュしたいGameObjectには、**Collider(SphereColliderとかBoxColliderとか)とRigidBodyをつける。
  • 地面はBoxCollider等をつけるだけでよい。

パラメータ RigidBody.IsKinematic, Collider.IsTrigger

  • RigidBody.IsKinematic=trueは、transformで動かすか、addForce等で動かす。ほかのものに影響を与えるが、自分は受けない。ゲームで動かすプレイヤーなどに使う。
  • Collider.IsTrigger=trueにすると物理挙動が無視される。ただ衝突時OnTriggerEnterが呼ばれるようになる。
  • Collider.isTrigger=trueにしなくても、衝突したらOnCollisionEnterが呼ばれる。ただisKinematic=trueになってると、よばれない。

イベントと物理挙動のまとめ

isKinematic isTrigger OnCollisionEnter OnTriggerEnter 物理挙動
true false くる こない しない(他には影響与える)
true true こない くる しない
false true こない くる しない
false false くる こない する

参考

http://qiita.com/yando/items/0cd2daaf1314c0674bbe