碰撞检测是2D游戏开发里经常要用到的东西,当我们做个游戏demo的时候,碰撞检测基本上无处不在,利用碰撞检测可以实现一些比较基础功能,比如碰撞,跳跃的地面检测,和NPC交互的检测,拾取物品的检测等等。
碰撞检测必不可少的是碰撞体组件和刚体组件,在2D游戏里面也就是xxcollider2D和Rigicbody2D,同时也可以将碰撞体设置为触发器,来选择是否要计算碰撞的反馈,可以在碰撞体界面勾选is trigger选择为触发器。可以简单的理解为触发器是没有碰撞体积的碰撞体。
碰撞体和触发器使用到的方法不同:
触发器为:
void OnTriggerEnter2D(Collider2D collider); //当触碰到触发器时
void OnTriggerStay2D(Collider2D collider); //当和触发器保持接触时
void OnTriggerExit2D(Collider2D collider); //当和触发器结束碰撞时
3个方法对应不同的碰撞情况,碰撞体也是基本上一样:
void OnCollisionEnter2D(collision collision);
void OnCollisionStay2D(collision collision);
void OnCollisionExit2D(collision collision);