已经在两个重叠的精灵组件上添加了BoxCollider2D组件
这是代码
import { _decorator, Component, Node,Collider2D,IPhysics2DContact,Contact2DType,BoxCollider2D} from ‘cc’;
const { ccclass, property } = _decorator;
@ccclass(‘pengZhuangJianCe’)
export class pengZhuangJianCe extends Component {
onLoad() {
const boxc=this.node.getComponent(BoxCollider2D);
if(boxc){
boxc.on(Contact2DType.BEGIN_CONTACT,this.obc,this);
boxc.on(Contact2DType.END_CONTACT,this.oec,this);
console.log("碰撞事件监听已注册");
}
else{
console.log("找不到碰着组件");
}
}
private obc(selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null){
console.log(“碰撞开始”);
};
private oec(selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null){
console.log(“碰撞结束”);
};
onDestroy(){
const boxc=this.node.getComponent(BoxCollider2D);
boxc.off(Contact2DType.BEGIN_CONTACT,this.obc,this);
boxc.off(Contact2DType.END_CONTACT,this.oec,this);
}
}
用谷歌浏览器运行后日志文件如下
Init Base: 0.64599609375 ms
game.ts:809 Init Infrastructure: 25.60107421875 ms
debug.ts:66 meshopt wasm decoder initialized
debug.ts:66 [PHYSICS2D]: register box2d.
game.ts:858 Init SubSystem: 139.27880859375 ms
debug.ts:66 Cocos Creator v3.8.5
debug.ts:66 Using custom pipeline: Builtin
game.ts:902 Init Project: 49.426025390625 ms
pengZhuangJianCe.ts:11 碰撞事件监听已注册
并没检测到碰撞,但是两个精灵组件的BoxCollider2D组件的绿框运行时我已经拉叠在一起了,请问大神为什么没有触发碰撞事件?


但是两个精灵会自己错开不会重叠,我运行前是手动拉重叠的,如何实现重叠呢?不让他们错开?
