如何修复三.js "url.lastIndexOf is not a function"错误?



我目前正在 Three.js r105 中加载 gLTF。加载文件后,我尝试在加载后更改 url,看看是否可以在加载后对其进行更改。这是我的问题开始的。

首先,我只是尝试更改"onLoad"中的网址。然后我尝试在我的gltf.scene.traverse中更改它。那也没用,所以然后我把输入一个函数作为 url 参数。

var loader = new THREE.GLTFLoader().load( function () {
window.setTimeout(`this = 'gmtk.glb', alert('It changed');`, 5000);
    **return "sword_1.glb";**
}, 

我以为我的gLTF至少会出现,但我的整个场景都是黑色的。在控制台中,我有 1 个错误说:

three.js:38135 Uncaught TypeError: url.lastIndexOf is not a function
    at Object.extractUrlBase (three.js:38135)
    at GLTFLoader.load (GLTFLoader.js:40)
    at Kube.js:31

您正在尝试将 HTTP URL 添加到 GLTF 加载程序,这是不允许的;尝试转换为 BLOB

在新的 BLOB(Response.data( 中,您可以将 response.data 替换为旧 URL

   const url = window.URL.createObjectURL(new Blob([response.data]));
   this.loaders.gltfLoader.load(url , (file)=>{
       
   });

在这里,装载机将完美加载而不会出错

相关内容

  • 没有找到相关文章

最新更新