碰撞层(Collision Layer)是物理系统中的一个重要概念,用于控制不同物体之间的碰撞关系。通过设置碰撞层,可以灵活地控制哪些物体之间可以发生碰撞,哪些物体之间不能发生碰撞。
每个碰撞器都可以被分配到一个碰撞层。引擎提供了 32 个碰撞层(Layer0 到 Layer31),每个碰撞器只能属于一个碰撞层。
// 设置碰撞器到 Layer1
collider.collisionLayer = Layer.Layer1;
碰撞层之间的碰撞关系可以使用 PhysicsScene 的 setColliderLayerCollision
方法来设置两个碰撞层之间是否可以发生碰撞:
// 禁用 Layer1 和 Layer2 之间的碰撞
scene.physics.setColliderLayerCollision(Layer.Layer1, Layer.Layer2, false);
// 启用 Layer1 和 Layer2 之间的碰撞
scene.physics.setColliderLayerCollision(Layer.Layer1, Layer.Layer2, true);
// 查看 Layer1 和 Layer2 之间的碰撞关系
console.log(scene.physics.getColliderLayerCollision(Layer.Layer1, Layer.Layer2));