Three.js无法加载材质(无法读取未定义的属性'长度')

时间:2015-08-04 18:21:22

标签: javascript json three.js

我还在学习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文件非常庞大,因此我制作了一个小得多的样本,它也碰巧遇到了同样的错误。 Here it is

Hopefuly你们可以帮助我!

非常感谢!

1 个答案:

答案 0 :(得分:1)

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/