Den*_*son 5 javascript json blender three.js
是否可以加载从搅拌机输出到json的场景(例如两个不同的立方体)并识别它们?
我需要区分它们,例如使一个旋转而另一个旋转.
先感谢您!
登革病毒
编辑+++
谢谢您的回答!
因此,如果我在一个JSON文件中加载两个多维数据集:
loader.load("untitled1.js", function(geometry, materials) {
mesh = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial(materials));
mesh.scale.set( 10, 10, 10 );
mesh.position.y = 0;
mesh.position.x = 0;
scene.add( mesh );
});
Run Code Online (Sandbox Code Playgroud)
我怎样才能移动第一个立方体?
mesh.getObjectById(0).position.x = 15;
Run Code Online (Sandbox Code Playgroud)
似乎不起作用.
谢谢!
小智 7
我通过以下过程实现了这个目标:( 使用three.js r80)
重要的是要知道根(或父)对象不再是几何.它现在标有Object类型.要访问子对象(Mesh类型),可以在根对象上使用getObjectByName方法,如下面的代码所示:
jsonloader.load( "obj/Books.json", function ( loadedObj ) {
var surface = loadedObj.getObjectByName("Surface");
var outline = loadedObj.getObjectByName("Outline");
var mask = loadedObj.getObjectByName("Mask");
// Watch the objects properties on console:
console.log(loadedObj);
console.log(surface);
console.log(outline);
console.log(mask);
} );
Run Code Online (Sandbox Code Playgroud)
如果我们检查浏览器的控制台,我们可以看到分配的正确对象.从现在开始,您可以独立操作子对象(移动,旋转,更改材料等)
gai*_*tat -1
加载的每个对象都有一个关联的 .id。因此,您可以使用 Object3D.getObjectById() 来查找它并对其应用转换。