Estoy trabajando con cannon-es (una bifurcación mantenida de cannon.js). Necesito fijar un objeto en el espacio durante un cierto período de tiempo. Entonces, hago body.sleep() en estos casos.
El problema es que el objeto puede colisionar con otro objeto y se despierta. Así que agrego body.collisionResponse = 0 pero no funciona. el cuerpo se convierte en un objeto fantasma (sin respuesta a la colisión) pero todavía se despierta en la colisión.
¿Hay alguna manera de evitar despertarse en caso de colisión?
Encontré las propiedades colisionfiltergroup y colisionFilterMask .
Entonces, en la creación del cuerpo:
const body = new CANNON.Body({ mass: 1, shape: shape, material: this.physicsWorld.defaultMaterial, collisionFilterGroup: 1, collisionFilterMask: 1 })Y, cuando tiene que arreglarse:
body.sleep() body.collisionFilterMask = 2