2
Как получить доступ к элементу по элементам, экспортированным из файла полной сцены .blend!Three.js: Как подсчитать объекты, добавленные в сцену
В этом тесте я экспортировал сцену Blender с четырьмя кубами. Теперь, с тэгом .js, я хочу сохранить эти кубы (объекты) в массиве javascript. Я пробовал это:
<html lang="pt-BR">
<head>
<meta charset="UTF-8" />
</head>
<script src="./js/three.min.js"></script>
<script src="./js/OrbitControls.js"></script>
<script type="text/javascript" src="./js/dat.gui.min.js"></script>
<script src="./js/OBJLoader.js"></script>
<div id="render">
</div>
<script>
// VARIÁVEIS
var qtd = 0;
var tam = 0;
var Modelo;
var Elementos = [];
// OBJETOS
var Render = new THREE.WebGLRenderer();
var Cenario = new THREE.Scene();
var Cam = new THREE.PerspectiveCamera();
var LuzDir;
var controles;
// modelo 3d com .ObjectLoader()
var Modelo3d_Object = new THREE.ObjectLoader();
Modelo3d_Object.load('modelo3d_teste.json', funcaoCarregaJSON);
// INI FUNCOES
inicio();
animacao();
console.log(Cenario);
console.log(Cenario.__webglObjects);
Elementos = Cenario.__webglObjects;
console.log(Elementos.length);
// FUNÇÕES
function inicio(){
Render.setSize(600,600);
document.getElementById('render').appendChild(Render.domElement);
Cam.position.z = 100;
Cenario.add(Cam);
Cenario.add(new THREE.GridHelper(100,10));
LuzDir = new THREE.DirectionalLight(0xffffff, 1);
LuzDir.position.set(100, 100, 50);
Cenario.add(LuzDir);
controles = new THREE.OrbitControls(Cam, Render.domElement);
}
// Carrega arquivo JSON
function funcaoCarregaJSON(geometry){
geometry.position.x = 0;
geometry.position.y = 0;
geometry.position.z = 0;
Cenario.add(geometry);
}
function animacao() {
requestAnimationFrame(animacao);
render_modelo();
}
function render_modelo(){
// Renderizar
Render.render(Cenario, Cam);
}
</script>
<html>
Но в этом случае я вижу только один элемент.
Где я пошло не так ??
Спасибо Gaitat, я попытался это, но это не сработало. «numOfMeshes» как глобальная переменная не обновляется в функции _callback. Я пытаюсь выяснить, как получить доступ к моим четырем кубикам через _cenário. Может ли кто-нибудь помочь мне в этом отношении. – user4659257