Estoy escribiendo un programa en TRES.js donde me gustaría presionar una tecla para cambiar el modelo actual cargado. He logrado que esto funcione de manera bastante simple usando la malla integrada en TRES, pero cuando trato de usar el mismo marco en archivos .glb importados, no funciona.
Aquí está mi función loader :
let charSelect = "models/charMod.glb"; loader = new GLTFLoader(); function loadModels() { const onLoadStatic = function (gltf, position) { charModel = gltf.scene.children[2]; scene.remove(charModel); charModel.scale.multiplyScalar(4); charModel.position.copy(position); modelLoaded = true; scene.add(charModel); }; const onProgress = function () { console.log("progress"); }; const onError = function (errorMessage) { console.log(errorMessage); }; const modPos = new THREE.Vector3(0, -3.5, 0); loader.load( charSelect, function (gltf) { onLoadStatic(gltf, modPos); }, onProgress, onError );Mi cambio de caso:
function caseSwitch() { switch (caseNum) { case 1: charSelect = "models/idle.glb"; loadModels(); break; case 2: charSelect = "models/kick.glb"; loadModels(); break; default: charSelect = "models/charMod.glb"; loadModels(); } }Como dije, esto funcionó con la malla THREE.js predeterminada, pero no con esto. ¿Alguien sabe una solución para esto? Gracias :)