Unity中檢測碰撞的方法有兩種,一種是觸發器一種是碰撞器,現在我來解釋一下兩種的區別。
觸發器:有三種方法,分別是OnTriggerEnter,OnTriggerStay,OnTriggerExit 觸發器一般是觸發某種事物時使用,例如計分,過關什么的,不帶有碰撞的物理效果。
碰撞器:有三種方法,分別是OnCollisionEnter,OnCollisionStay,OnCollisionExit 碰撞器一般是碰撞某種事物時使用,例如撞車,擊中目標,帶有碰撞的物理效果。
代碼:
觸發器:
1 void OnTriggerEnter(Collider other) 2 { 3 print("方法里寫你想要的效果"); 4 5 } 6 7 void OnTriggerStay(Collider other) 8 { 9 print("方法里寫你想要的效果"); 10 11 } 12 13 void OnTriggerExit(Collider other) 14 { 15 print("方法里寫你想要的效果"); 16 17 }
碰撞器:
1 void OnCollisionEnter(Collision other) 2 { 3 print("方法里寫你想要的效果"); 4 5 } 6 7 void OnCollisionStay(Collision other) 8 { 9 print("方法里寫你想要的效果"); 10 11 } 12 13 void OnCollisionExit(Collision other) 14 { 15 print("方法里寫你想要的效果"); 16 17 }
當然,這些是在3D的情況下,如果你做的是2D的游戲的話請在方法后面加上2D,如下:
1 void OnTriggerEnter2D(Collider2D collider) 2 { 3 print("方法里寫你想要的效果"); 4 } 5 6 void OnCollisionEnter2D(Collision2D other) 7 { 8 print("方法里寫你想要的效果"); 9 }
其它的一樣。
需要注意的是,當你使用觸發器的時候別忘了打開觸發器開關哦

