物理シミュする際、まずやること
- 物理シミュしたい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 | くる | こない | する |
参考