0
我在Blender中創建了一個模型,然後使用Three.js官方導出器將其導出到JSON。然後我嘗試使用下面的代碼加載它:Three.js json加載器錯誤,但不更改文件擴展名
const loader = new THREE.JSONLoader();
loader.load('assets/models/bear.json', (geometry, materials) => {
const bear = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial(materials));
scene.add(bear);
});
然後我得到了錯誤:
(unknown) TypeError: url.split is not a function
at Object.extractUrlBase (eval at <anonymous> (app.js:742), <anonymous>:32860:19)
at JSONLoader.load (eval at <anonymous> (app.js:742), <anonymous>:33166:120)
這裏是我的JSON文件:https://github.com/elliepooh/VRcard/blob/master/src/assets/models/bear.json
我發現了一些決定,但他們都是關於將.json文件重命名爲.js並加載它。由於我使用的WebPack和eslint,這是因爲某些原因有問題......
我還試圖用Clara.io JSON裝載程序是這樣的:
const loader = new THREE.ObjectLoader();
loader.load('assets/models/bear.json', (obj) => {
scene.add(obj);
});
然後我得到了以下類型錯誤:url.lastIndexOf不是一個函數
如果有任何方法加載json到three.js而不改變它的文件擴展名並且沒有這樣的錯誤?任何幫助,將不勝感激...
由於某種原因,不喜歡你的網址。你能否把你的控制檯的完整錯誤貼出來?謝謝! – TheJim01
我的猜測是JSON指的是一個值不是字符串url的紋理。我猜測這是因爲只有紋理加載器利用loader的extractUrlBase函數中的url.split,它由JSONLoader使用。我建議在codepen上發佈你的JSON,看看它是否加載到那裏,以便其他人可以複製錯誤。 – Radio
@Radio感謝您的建議!我編輯了更多信息的描述 – elliepooh