我正在尝试使用以下代码加载对象模型:
var loader = new THREE.JSONLoader();
loader.load('js/spacecraft.js', modelLoadedCallback);
function modelLoadedCallback(geometry) {
spacecraft = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial(geometry.materials));
spacecraft.position.x = 0;
spacecraft.position.y = 0;
spacecraft.position.z = 0;
mesh.add(spacecraft);
scene.add( mesh );
}
尽管如此,在每个renderer.render(..)调用中我都收到以下错误:
Uncaught TypeError: Cannot read property 'visible' of undefined
我不知道错误,因为在控制台中检查时,网格和航天器对象似乎都已正确加载。
我是否遗漏了JSONLoader的内容?
答案 0 :(得分:1)
我看到发生了什么:spacecraft.js
中的模型出于某种原因有一个空materials
数组......我需要找出原因,因为我使用NodeJS three-obj库进行转换。 obj to .JSON
答案 1 :(得分:0)
您能否提供该错误的行号/文件?它可能在航天器内部,或者在代码中的其他行?
查看js / spacecraft.js并找到尝试使用的内容。可见,例如myObj.visible
快速解决方法是用if(myObj != undefined){ ... };
来围绕这个问题。但更常见的解决方法是找出myObj.visible为什么不首先被定义。