Javascript 对象未在ThreeJS中使用JSONLoader加载:无法读取属性';可见';未定义的
我正在尝试使用以下代码加载对象模型:Javascript 对象未在ThreeJS中使用JSONLoader加载:无法读取属性';可见';未定义的,javascript,json,three.js,Javascript,Json,Three.js,我正在尝试使用以下代码加载对象模型: var loader = new THREE.JSONLoader(); loader.load('js/spacecraft.js', modelLoadedCallback); function modelLoadedCallback(geometry) { spacecraft = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial(geometry.materials)); spac
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中遗漏了什么吗?您能给出该错误的行号/文件吗?它可能在宇宙飞船内部,或者在你代码中的其他行
查看js/spacer.js并找到正在尝试使用的.visible,例如
myObj.visible
if(myObj!=undefined){…},一个快速修复方法是使用if(myObj!=undefined){…}
但是一个更普遍的解决办法是首先找出为什么myObj.visible没有定义。我知道发生了什么:由于某种原因,航天器.js
中的模型有一个空的材质
数组。。。我需要找出原因,因为我使用NodeJS三个obj库将.obj转换为.JSONHi!这是个好主意,我以前试过,但不知怎么的,错误不断出现。错误发生在ThreeJS脚本文件中的renderer.render(..)调用中。这可能会对您有所帮助