js无法加载材料(无法读取属性'length'未定义)

Three.js cannot load materials (Cannot read property 'length' of undefined)

本文关键字:未定义 length 读取 加载 材料 js 属性      更新时间:2023-09-26

我还在学习three.js,我遇到了一个问题,阻碍了我的进步。

由于某种原因,我已经找了好几天,但是找不到一个对我有帮助的答案。

问题是,我不能导入JSON模型的材料。我得到"无法读取属性'长度'未定义"所有的时间,我不明白为什么。

我用来导入的代码非常简单,如下所示:
var loader = new THREE.ObjectLoader();
loader.load( "island.json", function ( geometry, materials ) {
    mesh = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial( materials ) );
    scene.add( mesh );
    render();
} );

我试图导入的JSON文件是巨大的,因此我做了一个小得多的样本,也碰巧遇到同样的错误。在这里

希望你们能帮助我!

大规模谢谢!

JSON代码不是问题,而是您混淆了JSONLoaderObjectLoader

JSONLoaderObjectLoader都接受JSON,但它们的结构不同。这样做:

var loader = new THREE.ObjectLoader();
loader.load("island.json", function(object){
    scene.add(object);
});

查看更多信息:http://helloenjoy.com/2013/from-unity-to-three-js/