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 }
其它的一样。
需要注意的是,当你使用触发器的时候别忘了打开触发器开关哦