物理碰撞
物理引擎默认是关闭状态以节省资源开销。开启方法和之前的普通碰撞类似:cc.director.getPhysicsManager().enabled = true但有一个区别,物理引擎的开启必须放在onLoad函数内运行,否则不生效。
物理碰撞组件也同样具有碰撞回调函数。但如果要使用回调函数,则必须开启刚体的 EnableContact Listener 或者 在代码中写rb.enableContactlistener = true。
物理碰撞组件有4个回调函数:
- onBeginContact(contact,self other)–当碰撞体开始接触时被调用一次
- onEndContact(contact,self other)–当碰撞体结束接触时被调用一次
- onPreSolve(contact,self other)–每次将要处理碰撞体接触逻辑时被调用
- onPostSolve(contact,self other)–每次处理完成碰撞体接触逻辑时被调用
执行顺序:onBeginContact > onPreSolve > onPostSolve > onEndContact
上述回调函数的参数解释如下:
contact: cc.PhysicsContact 碰撞信息
self: cc.PhysicsCollider 自己
other:cc,PhysicsCollider 碰撞的另一个物体
关于物理碰撞更多详情
示例:
manager:cc.PhysicsManager;onLoad(){this.manager=cc.director.getPhysicsManager();this.manager.enabled = true;}onBeginContact(){console.log("触发");}