我無法從場景中獲取Object3D。儘管網格物體顯示在場景中。 scene.children數組不顯示。 請看看截圖(鏈接)。在場景中無法獲取object3D
代碼:
function init(){
loadJSON(function(response) {
// Parse JSON string into object
var jsonData = JSON.parse(response);
materialType = ['MeshBasicMaterial','MesLambertMaterial','MeshPhongMaterial', 'MeshStandardMaterial'];
for (var i =0; i< jsonData.materials.length; i++){
var matName = jsonData.materials[i].name;
materialArray[matName] = new THREE.MeshLambertMaterial();
materialArray[matName].name = matName;
}
var loader = new THREE.OBJLoader();
for(var i = 0; i < jsonData.models.length;i++){
parentGroup = new THREE.Object3D();
parentGroup.name = jsonData.models[i].name;
for(var j = 0; j < jsonData.models[i].children.length;j++){
childName = jsonData.models[i].children[j].name;
matType = jsonData.models[i].children[j].material;
loader.load("models/" + childName, makeHandler(childName , materialArray[matType],parentGroup), false);
}
scene.add(parentGroup);
}
});//loadJSON
console.log(scene.children); //-- SCREENSHOT OUTPUT --
}//init function
// HANDLER FUNCTION
function makeHandler(meshName, material,parentObj) {
return function(geometry) {
object3d = new THREE.Mesh(geometry, material);
object3d.name = meshName;
parentObj.add(object3d);
};
}
感謝。
您可以粘貼試圖獲取這些項目的代碼部分嗎? – kkawabat
只需添加代碼..謝謝。 – Deb
如果您向我們提供錯誤代碼(如果有)並突出顯示代碼中的相關行,它可能也會有所幫助。 – kkawabat