想知道2D刚体有没有跟别的刚体有接触

3.8.6 用了2d物理引擎
无论是全局的监听,还是刚体自身监听,通通无效,为什么?
附上能跑的小小demo一个,望大佬们指点一下

NewProject_Collider_test.rar (684.8 KB)

PhysicsSystem2D.instance.on(Contact2DType.BEGIN_CONTACT, this.onPyBeginContact, this);
PhysicsSystem2D.instance.on(Contact2DType.END_CONTACT, this.onPyEndContact, this);
PhysicsSystem2D.instance.on(Contact2DType.PRE_SOLVE, this.onPyPreSolve, this);
PhysicsSystem2D.instance.on(Contact2DType.POST_SOLVE, this.onPyPostSolve, this);

const collider = this.curLEO.getComponent(BoxCollider2D);
collider.on(Contact2DType.BEGIN_CONTACT, this.onBeginContact, this);
collider.on(Contact2DType.END_CONTACT, this.onEndContact, this);

rigidBody.enabledContactListener = true;

因为你用的是Box2D物理系统,用代码创建RigidBody2D刚体的时候,没有将它的EnabledContactListener属性设置为true



2D 碰撞回调
如果你不需要刚体效果只需要碰撞检测的话可以在项目设置里切换为更加轻量的Builtin物理系统,它不依赖RigidBody2D组件

1赞

感谢,已经解决了