Soy nuevo en Three.js y no puedo entender por qué esta animación no acepta el toro como parámetro. Sin configurar 'torusToBeMoved' como parámetro, funciona perfectamente bien.
const geometry = new THREE.TorusGeometry(25, 0.2, 26, 100); const material = new THREE.MeshStandardMaterial({ color: 0xccaa55 }); const torus = new THREE.Mesh(geometry, material); torus.position.set(-15, -15, -15); scene.add(torus); function animate(torusToBeMoved) { requestAnimationFrame(animate(torusToBeMoved)); torusToBeMoved.rotation.x += 0.01; torusToBeMoved.rotation.y += 0.005; torusToBeMoved.rotation.z += 0.01; controls.update(); renderer.render(scene, camera); } animate(torus);```Se encuentra con el error "Se excedió el tamaño máximo de la pila de llamadas", ya que está pasando el valor de retorno de la función como parámetro en lugar de pasar la función como parámetro. Utilizar una devolución de llamada como parámetro debería resolver el problema:
const animate = (torusToBeMoved) => { torusToBeMoved.rotation.x += 0.01; torusToBeMoved.rotation.y += 0.005; torusToBeMoved.rotation.z += 0.01; controls.update(); renderer.render(scene, camera); requestAnimationFrame(() => animate(torusToBeMoved)); }