Unity学习笔记(4): 碰撞相关API

Unity3D中的碰撞:
在unity中,有普通碰撞体Collider和触发器(Trigger)两种碰撞体,两个普通碰撞体会发生碰撞并产生力学现象,触发器则像是个无法触碰而又真实存在的东西,也会触发碰撞事件,但另一个物体会穿过它,碰撞发生的前提是两碰撞体有一方携带刚体(Rigidbody)组件。
物体对碰撞体进行处理的三个函数:

void OnCollisionEnter(Collision collision){};//当碰撞体进入当前物体时触发的回调函数
void OnCollisionStay(Collision collision){};//当碰撞体停留当前物体内时触发的回调函数
void OnCollisionExit(Collision collision){};//当碰撞体离开当前物体时触发的回调函数
物

体对触发器进行处理的三个函数:

void OnTriggerEnter(Collider other){}//当触发器进入当前物体时触发的回调函数
void OnTriggerStay(Collider other){}//当触发器停留在当前物体时触发的回调函数
void OnTriggerExit(Collider other){}//当触发器离开当前物体时触发的回调函数

Unity2D中的碰撞:
概念和Unity3D大致相同
物体对2D碰撞体进行处理的三个函数:

void OnCollisionEnter2D(Collision2D collision){}//当2D碰撞体进入当前物体时触发的回调函数
void OnCollisionStay2D(Collision2D collision){}//当2D碰撞体停留当前物体内时触发的回调函数
void OnCollisionExit2D(Collision2D collision){}//当2D碰撞体离开当前物体时触发的回调函数
物

体对2D触发器进行处理的三个函数:

void OnTriggerEnter2D(Collider2D other){}//当2D触发器进入当前物体时触发的回调函数
void OnTriggerStay2D(Collider2D other){}//当2D触发器停留在当前物体时触发的回调函数
void OnTriggerExit2D(Collider2D other){}//当2D触发器离开当前物体时触发的回调函数

博主在2D游戏开发的时候遇到几次碰撞没有发生,原因基本都是某一方的碰撞体或者刚体(RigidBody)没有2D后缀。。。。。。。。。。所以不要在2D的项目里出现3D的组件啊,找一天的BUG

你可能感兴趣的:(Unity学习笔记(4): 碰撞相关API)