CCC 3.4.2 的2D场景 如何开启碰撞?

2.0 的开启:
// 开启碰撞检测系统,未开启时无法检测
cc.director.getCollisionManager().enabled = true;

3.0 怎么也弄不出来,下面是官网API:

开启碰撞监听

只有开启了刚体的碰撞监听,刚体发生碰撞时才会回调到对应的组件上。
rigidbody.enabledContactListener = true;

@官方 你们自己试试,根本开启不了!!! 搞得头皮发麻,文档太差了!!!

物理只能在onLoad里开启,我记得在别的地方开启是无效的

放到onLoad 也没用, 导包只有 Rigibody 没有rigibody

哪里来的rigibody??

vscode不是都给弹出ts语法错误了?

先用this.node.getComponent把Rigibody组件获取了才行

https://docs.cocos.com/creator/manual/zh/physics-2d/physics-2d-rigid-body.html

官网的rigibody

在onload或start都行,加入下面代码

let collider = this.node.getComponent(Collider);

    collider.on("onTriggerEnter", this.c_enter, this);

    collider.on("onTriggerStay", this.c_stay, this);

    collider.on("onTriggerExit", this.c_exit, this);

中间的回调函数自己写,这个是触发器碰撞检测,如果是要物理碰撞检测,把里面的“onTrigger”改成“onCollision”

怎么把碰撞的 回调函数 跑起来啊

他这里的rigidbody是组件吧,默认你之前已经获取了吧…官方应该也想不到有这样的吧,而且这个enabled编辑器界面应该就能设置的吧。
let rigidbody = this.node.getComponent(RigidBody)先

image 都怪官方,只在3D物理那里写了这个,没在2D物理里先写这句话 :rofl:

官方的2D 碰撞教程就是一坨S, 这里碰撞2D这样不报错了, 我都不明白了 COCOS 2D游戏做的多,怎么还就这个程度