Actualmente tengo varios objetos, cada uno avanza aleatoriamente como este
model.lookAt(position_x, 0, position_z); setInterval(function(){ model.translateZ(0.015); }, 10);Necesito cada objeto para evitar chocar entre sí durante los movimientos hacia adelante. Encontré esta solución que sugiere cuadros delimitadores para la detección de colisiones, pero solo parece ser para colisiones entre dos objetos:
¿Cómo detectar la colisión entre dos objetos en JavaScript con Three.js?
¿Es posible tener múltiples objetos, cada uno con sus propias detecciones de colisión?
¡Gracias!
Así es como podrías hacerlo:
var objectA = ...your first object... var objectB = ...your second object... var objectC = ...your first object... var objectD = ...your second object... firstBB = new THREE.Box3().setFromObject(objectA); secondBB = new THREE.Box3().setFromObject(objectB); thirdBB = new THREE.Box3().setFromObject(objectC); fourthBB = new THREE.Box3().setFromObject(objectD); const BBs = [firstBB, secondBB, thirdBB, fourthBB]; // at each frame, you could do this to check if some objects are colliding : BBs.forEach(bb => { // Filter out this bb from BBs const otherBBs = BBs.filter(other => other !== bb) // Check if any of the other BBs intersects with this bb otherBBs.forEach(other => { if (bb.intersectsBox(other)) { // Collision ! Do something } }) })