八、物理检测:1、碰撞API

2021-04-17  本文已影响0人  GameObjectLgy

碰撞总是不发生原因有可能

你的碰撞组件和碰撞方法不对应,比如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、在工程的设置选项里,两种物体的层级没有设置为可碰撞。

上一篇 下一篇

猜你喜欢

热点阅读