看了官方的文档,我在item(道具)上增加了rigidBody2D组件。如下:

在ball(球)上增加了组件如下:

碰撞矩阵如下:

但我实际上想用的是boxCollider2D组件(不需要物理引擎的碰撞),只想触发onCollisionEnter。
然而现在道具跟球实际碰撞回调的只有onCollisionEnter下方的4个Contact回调,onCollisionEnter不生效。如下图:

有大佬知道问题出在哪里吗?
看了官方的文档,我在item(道具)上增加了rigidBody2D组件。如下:

在ball(球)上增加了组件如下:

碰撞矩阵如下:

但我实际上想用的是boxCollider2D组件(不需要物理引擎的碰撞),只想触发onCollisionEnter。
然而现在道具跟球实际碰撞回调的只有onCollisionEnter下方的4个Contact回调,onCollisionEnter不生效。如下图:

有大佬知道问题出在哪里吗?
…哪里有onCollisionEnter这个类型的事件
creator 2.x的时候有,莫非3.x被删了?(那时候需结合cc.director.getCollisionManager().enabled = true)使用
破案了,兄弟。
你心心念念的onCollisionEnter是3D物理中的组件,需要搭配BoxCollider,RigiBody才能回调onCollisionEnter
BEGIN_CONTAC,END_CONTAC是2D物理中的回调函数,需要搭配BoxCollider2D,Rigibody2D才能回调

如果不需要用到任何物理系统的话,可以用cocos内置的2D物理系统,不需要刚体 也可以进行检测

这是在 不需要任何物理上的力 的情况下 ,如果是还需要物理上的东西,又不想让这次碰撞产生碰撞效果过的话,在检测到碰撞时 不进行碰撞效果 用这个方法,
onBeginContact (selfCollider: BoxCollider2D, otherCollider: BoxCollider2D, contact: IPhysics2DContact | null) {
contact.disabled = true;
contact.disabledOnce = true;
console.log(“begin”, contact)
}
有些版本 这个方法 无效,官方在3.x版本修复的,具体哪个版本修复了 需要自己去查一下
应该是在 3.8 修复的,3.7.x
contact.disabled = true;
contact.disabledOnce = true
这个是没效果的