Unity触发碰撞
3D触发器与碰撞器
触发信息检测:
1.MonoBehaviour.OnTriggerEnter(Collider collider)当进入触发器
2.MonoBehaviour.OnTriggerExit(Collider collider)当退出触发器
3.MonoBehaviour.OnTriggerStay(Collider collider)当逗留触发器
碰撞信息检测:
1.MonoBehaviour.OnCollisionEnter(Collision collision) 当进入碰撞器
2.MonoBehaviour.OnCollisionExit(Collision collision) 当退出碰撞器
3.MonoBehaviour.OnCollisionStay(Collision collision) 当逗留碰撞器
2D触发器与碰撞器
触发信息检测:
1.MonoBehaviour.OnTriggerEnter2D(Collider2D)当进入2D触发器
2.MonoBehaviour.OnTriggerExit2D(Collider2D)当退出2D触发器
3.MonoBehaviour.OnTriggerStay2D(Collider2D) 当逗留2D触发器
碰撞信息检测:
1.MonoBehaviour.OnCollisionEnter2D(Collision2D) 当进入2D碰撞器
2.MonoBehaviour.OnCollisionExit2D(Collision2D) 当退出2D碰撞器
3.MonoBehaviour.OnCollisionStay2D(Collision2D)当逗留2D碰撞器
物体发生碰撞的必要条件:
碰撞器是触发器的载体,而触发器只是碰撞器身上的一个属性。两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有Rigidbody刚体。
碰撞器:一群组件,它包含了很多种类,比如:Box Collider(盒碰撞体),Mesh Collider(网格碰撞体)等,这些碰撞器应用的场合不同,但都必须加到GameObjecet身上。
触发器,只需要在检视面板中的碰撞器组件中勾选IsTrigger属性选择框。
一:产生碰撞的条件
1:若要产生碰撞,必须双方都要有碰撞器。
2:运动的一方一定要有刚体,另一方有无刚体无所谓。
注:如果运动的一方无刚体,它去碰撞静止的刚体,相当于没有装上。
二:接触的两种方式
1:Collision碰撞,造成物理碰撞,可以在碰撞时执行OnCollision事件。
2:Trigger触发,取消所有的物理碰撞,可以在触发时执行OnTrigger事件。
注:两个物体接触不可能同时产生碰撞+接触,最多产生一种。但是可以AB产生碰撞,AC产生触发。
三:产生不同方式接触的条件
1:Collision碰撞
(1):双方都有碰撞体
(2):运动的一方必须有刚体
(3):双方不可同时勾选Kinematic运动学。
(4):双方都不可勾选Trigger触发器。
2:Trigger触发
(1):双方都有碰撞体
(2):运动的一方必须是刚体
(3):至少一方勾选Trigger触发器
四:接触后事件细分为Enter,Stay,Exit三种(以Trigger为例,分别为OnTriggerEnter、OnTriggerStay、OnTriggerExit)
1:Enter事件表示两物体接触瞬间,会执行一次。
2:Stay事件表示两物体持续接触,会不断执行。
3:Exit事件当两物体分开瞬间,会执行一次。
五:碰撞规则表
如果文章对您有帮助的话请点个赞鼓励下博主吧!
@Liam:有用→收藏→关注 听说长得好看的人都这么做!