碰撞总是不发生原因有可能
你的碰撞组件和碰撞方法不对应,比如2D碰撞组件,却用3D的碰撞方法去检测。
同理的还有射线检测。
3D碰撞
void OnCollisionEnter(Collision collision){};//当碰撞体进入当前物体时触发的回调函数
void OnCollisionStay(Collision collision){};//当碰撞体停留当前物体内时触发的回调函数
void OnCollisionExit(Collision collision){};//当碰撞体离开当前物体时触发的回调函数
void OnTriggerEnter(Collider other){}//当触发器进入当前物体时触发的回调函数
void OnTriggerStay(Collider other){}//当触发器停留在当前物体时触发的回调函数
void OnTriggerExit(Collider other){}//当触发器离开当前物体时触发的回调函数
2D碰撞
void OnCollisionEnter2D(Collision2D collision){}//当2D碰撞体进入当前物体时触发的回调函数
void OnCollisionStay2D(Collision2D collision){}//当2D碰撞体停留当前物体内时触发的回调函数
void OnCollisionExit2D(Collision2D collision){}//当2D碰撞体离开当前物体时触发的回调函数
void OnTriggerEnter2D(Collider2D other){}//当2D触发器进入当前物体时触发的回调函数
void OnTriggerStay2D(Collider2D other){}//当2D触发器停留在当前物体时触发的回调函数
void OnTriggerExit2D(Collider2D other){}//当2D触发器离开当前物体时触发的回调函数
碰撞不发生原因:
1、如果碰撞体是运动物体,如果不勾选连续监测,即使是低速也不能发生碰撞
QQ图片20210105151532.png
2、在工程的设置选项里,两种物体的层级没有设置为可碰撞。
网友评论