Estoy trabajando en un proyecto que necesita detectar colisiones entre el automóvil del jugador y los automóviles generados por procedimientos. Sin embargo, todas las mallas de automóviles utilizan Three.js Group y consisten en varias mallas diferentes como esta:
const car = new THREE.Group(); const color = pickRandom(vehicleColors); const main = new THREE.Mesh( new THREE.BoxBufferGeometry(60, 30, 15), new THREE.MeshLambertMaterial({ color }) ); main.position.z = 12; main.castShadow = true; main.receiveShadow = true; car.add(main); const carFrontTexture = getCarFrontTexture(); carFrontTexture.center = new THREE.Vector2(0.5, 0.5); carFrontTexture.rotation = Math.PI / 2; const carBackTexture = getCarFrontTexture(); carBackTexture.center = new THREE.Vector2(0.5, 0.5); carBackTexture.rotation = Math.PI / 2; const carRightSideTexture = getCarSideTexture(); const carLeftSideTexture = getCarSideTexture(); carLeftSideTexture.flipY = false; const cabin = new THREE.Mesh( new THREE.BoxBufferGeometry(33, 24, 12), [ new THREE.MeshLambertMaterial({ map: carFrontTexture }), new THREE.MeshLambertMaterial({ map: carBackTexture }), new THREE.MeshLambertMaterial({ map: carLeftSideTexture }), new THREE.MeshLambertMaterial({ map: carRightSideTexture }), new THREE.MeshLambertMaterial({ color: 0xffffff }), new THREE.MeshLambertMaterial({ color: 0xffffff }) ] ); cabin.position.x = -6; cabin.position.z = 25.5; cabin.castShadow = true; cabin.receiveShadow = true; car.add(cabin); const backWheel = Wheel(); backWheel.position.x = -18; car.add(backWheel); const frontWheel = Wheel(); frontWheel.position.x = 18; car.add(frontWheel); car.scale.set(0.5, 0.5, 0.5); return car;¿Puedo usar la detección de colisiones de ammo.js en mallas tan complejas? Si no, ¿hay otras formas de lograrlo? Gracias por su paciencia.