Estoy tratando de conectar una linterna direccional a la cámara (objeto de control) para que el haz esté siempre donde apunta el centro de la pantalla. Este es mi código:
controls = new PointerLockControls( camera, document.body ); var flashlight = new THREE.SpotLight(0xffffff, 7, 50, 0.8*Math.PI); controls.getObject().add(flashlight); controls.getObject().add(flashlight.target);pero el resultado es la luz alrededor de la cámara, no un haz directo. (ver foto abajo)
Entonces, ¿cómo puedo lograr un haz direccional ?
// editar, grupo agregado.
controls = new PointerLockControls( camera, document.body ); var flashlight = new THREE.SpotLight(0xffffff, 7, 50, 0.8*Math.PI); // camera.add(flashlight); // camera.add(flashlight.target); const group = new THREE.Group(); group.add(camera); group.add(flashlight); scene.add(group);Podrías usar un THREE.Group para agrupar objetos
const group = new THREE.Group(); group.add(camera); group.add(flashlight); // Finally, we add the group to our controls controls = new PointerLockControls( group, document.body );Luego puede agregar el grupo a su escena y controlar el grupo como un todo. La cámara y la linterna rotarán y se trasladarán juntas.