Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

208
Visualizações
Conceptos básicos de Three.js – No se puede encontrar la variable – Animación de GLTFLoader

Tengo conocimientos muy básicos de JS. Siguiendo los documentos de three.js Cargando modelos 3D, he renderizado con éxito el objeto 3D y lo he centrado:

 const loader = new GLTFLoader(); loader.load( 'Duck.gltf', function ( duck ) { const model = duck.scene const box = new THREE.Box3().setFromObject( model ); const center = new THREE.Vector3(); box.getCenter( center ); model.position.sub( center ); // center the model scene.add( model ); }, undefined, function ( error ) { console.error( error ); } );

Me gustaría animarlo ahora, comenzando con una rotación simple:

 /** * Animate */ const clock = new THREE.Clock() const tick = () => { const elapsedTime = clock.getElapsedTime() // Update objects model.rotation.y = .5 * elapsedTime // Update Orbital Controls // controls.update() // Render renderer.render(scene, camera) // Call tick again on the next frame window.requestAnimationFrame(tick) } tick()

Pero el problema es que la consola devuelve:

 ReferenceError: Can't find variable: model
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Ha declarado la variable del modelo dentro del alcance funcional, intente declararla fuera

 const loader = new GLTFLoader(); let model, box, center; loader.load( 'Duck.gltf', function ( duck ) { model = duck.scene box = new THREE.Box3().setFromObject( model ); center = new THREE.Vector3(); box.getCenter( center ); model.position.sub( center ); // center the model scene.add( model ); }, undefined, function ( error ) { console.error( error ); } );

¡Con suerte, esto funcionará!

editado

como sugirió @prisoner849 en los comentarios

 const clock = new THREE.Clock() const tick = () => { const elapsedTime = clock.getElapsedTime() // Update objects if (model) { model.rotation.y = .5 * elapsedTime } // Update Orbital Controls // controls.update() // Render renderer.render(scene, camera) // Call tick again on the next frame window.requestAnimationFrame(tick) } tick()
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda