【问题标题】:Three.js cannot load materials (Cannot read property 'length' of undefined)Three.js 无法加载素材(无法读取未定义的属性“长度”)
【发布时间】:2015-10-27 06:49:38
【问题描述】:

我还在学习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

希望你们能帮帮我!

非常感谢!

【问题讨论】:

    标签: javascript json three.js


    【解决方案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/

    【讨论】:

      猜你喜欢
      • 2018-04-05
      • 2016-09-12
      • 2011-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-10
      • 2020-09-14
      相关资源
      最近更新 更多