碰撞器
物体发生碰撞的两个必要条件
- 两个物体都要挂载
Collider
组件 - 其中一个物体是刚体,挂载
Rigidbody
组件
基本碰撞体
- Box Collider (2D)
- Sphere Collider
- Capsule Collider
- Circle Collider 2D
组合碰撞体
- 子物体所挂载的碰撞体组件,也会成为父物体物理外形的一部分。
- 既可以给一个物体添加多个基本碰撞体,也可以把碰撞体组件挂载到子物体上,这样都能构造出组合碰撞体。
- 组合碰撞体适合于汽车,枪支等不规则的游戏物体。
碰撞事件
1
2
3
4
// 参数为碰撞信息,碰撞事件的参数信息要比触发事件的多一些
private void OnCollisionEnter(Collision collisionInfo) {}
private void OnCollisionStay(Collision collisionInfo) {}
private void OnCollisionExit(Collision collisionInfo) {}
碰撞体分类
静态碰撞体
- 静态碰撞体指没有挂载刚体组件的碰撞体。
- 静态碰撞体通常用于制作关卡中固定不动的地形,障碍物等。
刚体碰撞体
动力学刚体碰撞体
触发器
触发事件
1
2
3
4
// 参数为碰撞体信息,即另一个进入了该触发区域的物体的碰撞体
private void OnTriggerEnter(Collider other) {}
private void OnTriggerStay(Collider other) {}
private void OnTriggerExit(Collider other) {}
物理材质
弹性系数
- 弹性系数的值一般不宜超过0.9,超过1则表示反弹力会比作用力本身还大。不考虑阻力的情况下角色就永远停不下来了,这既不符合现实中的物理理念,又容易浪费计算资源,进而造成各种bug。