Unity中的碰撞檢測主要由兩個組件完成
- 剛體Rigidbody
- 碰撞體Collider
碰撞的必要條件 - 發(fā)生碰撞的兩個物體至少有一個帶有Rigidbody組件晓淀,即剛體
- 發(fā)生碰撞的兩個物體都必須帶有碰撞器組件
- 持續(xù)碰撞的回調(diào)方法需要有相對運(yùn)動才有調(diào)起
- 注意:如果帶有剛體的物體不發(fā)生運(yùn)動勉吻,剛體會處于休眠狀態(tài)糟需,系統(tǒng)不會進(jìn)行碰撞檢測的坚芜,如果帶有剛體的物體運(yùn)動览芳,剛體會一直處于活動狀態(tài),碰撞檢測才會進(jìn)行鸿竖。
碰撞器的回調(diào)方法 - OnCollisionEnter(Collision other) 碰撞開始一瞬間被調(diào)用
- OnCollisionStay(Collision other)一直保持碰撞狀態(tài)時被調(diào)用
- OnCollisionExit(Collision other)碰撞分離的一瞬間被調(diào)用
Unity中的觸發(fā)器
當(dāng)勾選Is Trigger時沧竟,成為觸發(fā)器
如果是碰撞器,兩個物體之間是不能夠穿透的缚忧,勾選Is Trigger之后悟泵,觸發(fā)器是可以穿透的
觸發(fā)器檢測發(fā)生的條件:
- 兩個物體都需要有碰撞器
- 至少有一個物體是掛載剛體
- 其中一個勾選Is Trigger
觸發(fā)器的回調(diào)方法:
- OnTriggerEnter(Collider other)當(dāng)進(jìn)入觸發(fā)器時調(diào)用一次
- OnTriggerStay(Collider other)處于某個觸發(fā)器中的時候持續(xù)調(diào)用
-
OnTriggerExit(Collider other)退出觸發(fā)器的時候調(diào)用一次
image.png