发现刚体和碰撞体这俩个组件特别常用,也会涉及到碰撞事件和触发事件,所以总结和记录一下怎么使用碰撞体和刚体这俩组件去实现碰撞事件、触发事件
理论知识1:碰撞事件
1、碰撞三要素
- 碰撞发生在两个物体之间
- 碰撞的双方都具有碰撞体collider,而且不能勾选is trigger,即不能为触发器
- 发生碰撞的二者之间中,至少有一个挂载了刚体rigidbody,同时不能是动力学刚体kinematic
要使用碰撞事件,发生碰撞的双方就都不能勾选is trigger
而且挂载的rigidbody刚体组件的body type不能选择kinematic
当满足上面三个条件时,物件之间就会发生碰撞事件。碰撞事件是比较容易观测到的,如果没有发生碰撞事件,仔细检查上面三个元素是否都满足了,这样就能顺利写出来碰撞事件了哈哈哈
2、脚本响应碰撞事件:
1、OnCollisionEnter函数(更常用,2d游戏使用OnCollisionEnter2D,在后面多了一个2D
2、OnCollisionStay函数
3、OnCollisionExit函数
上面的三个碰撞函数,在2d游戏中要在函数名的后面多加2D,如下图:
理论知识2:触发事件
1、为什么使用触发器
- 检测物体接触,但是不需要做物理模拟时,就用触发器trigger
- Unity的触发器与碰撞体是同一个组件,只要勾选碰撞体的is trigger就变成了触发器模式
2、触发器事件的三要素
- 触发器事件发生于两个物体接触或者穿过时
- 碰撞双方都具有碰撞体组件,其中一方要勾选 is trigger
- 发生触发的二者中,至少有一个是刚体rigidbody。但是与碰撞事件不同,触发事件可以是普通刚体,也可以是动力学刚体
3、脚本响应触发器事件
1、OnTriggerEnter函数(常用
2、OnTriggerStay函数
3、OnTriggerExit函数
与碰撞事件相同,2d游戏要在上面函数名后面加上 2D
碎碎念(可忽略
碰撞体有不同的形状,可以根据实际需要去选择合适的。
碰撞事件和触发事件的例子就不写了,我感觉不难,而且懒
不知道说啥了,over