一:产生碰撞的必要条件
要产生碰撞的两个游戏对象都需要添加碰撞器组件Collider(不能勾选IsTrigger,勾选此属性表示物体是一个触发器,已经不能叫做碰撞器了)。其中一个对象必须添加刚体组件Rigidbody。
具备这两个条件就可以发生碰撞效果,对两个物体添加力的效果可以是碰撞产生,直接修改物体的position也可是使碰撞现象产生。但是这不是绝对的。如果物体的速度太快,物体会互相穿过。将不会发生碰撞现象。
二:碰撞器与触发器
碰撞器与触发器是同一个组件 Collider。如果组件的属性IsTrigger等于True那么它叫触发器,如果等于False那么它叫碰撞器。
三:MonoBehaviour中碰撞相关的函数
OnCollisionEnter(Collision collision) //当进入碰撞器时
OnCollisionExit(Collision collision) //当退出碰撞器时
OnCollisionStay(Collision collision) //当停留在碰撞器时
这三个函数的触发的条件是发生碰撞,第一条说了发生碰撞的条件。
参数collision 中包含了一些碰撞的信息。
OnTriggerEnter(Collider other) //当进入触发器时
OnTriggerExit(Collider other) //当退出触发器时
OnTriggerStay(Collider other) //当停留在触发器时
参数 other 中是对方的信息Collider。
两个物体需要添加Collider组件,并且其中一个必须是触发器,另一个可以是触发器也可以是碰撞器。两个物体都会触发这三个函数。
来源:CSDN
作者:驰愿
链接:https://blog.csdn.net/qq_27461747/article/details/104492748