Javascript ThreeJS按id获取元素(网格)
我在Javascript ThreeJS按id获取元素(网格),javascript,jquery,3d,three.js,mesh,Javascript,Jquery,3d,Three.js,Mesh,我在Three.JS中有一个网格对象 如何获取id为的网格对象并更改其位置,如jQuery中的$(#“sample”)。 或者任何更好的想法来改变一个对象的位置,在代码的中间。 var voxel = new THREE.Mesh(new THREE.CubeGeometry(x, y, z), new THREE.MeshBasicMaterial(...)) voxel.id = "sample"; scene.add(voxel); 为了安全起见,不要覆盖现有的Object3D.id v
Three.JS
中有一个网格对象如何获取id为的网格对象并更改其位置,如jQuery中的
$(#“sample”)
。或者任何更好的想法来改变一个对象的位置,在代码的中间。
var voxel = new THREE.Mesh(new THREE.CubeGeometry(x, y, z), new THREE.MeshBasicMaterial(...))
voxel.id = "sample";
scene.add(voxel);
为了安全起见,不要覆盖现有的
Object3D.id
var objects = {};
mesh1.id2 = "mesh1";
objects[ mesh1.id2 ] = mesh1;
mesh2.id2 = "mesh2";
objects[ mesh2.id2 ] = mesh2;
objects[ "mesh2" ].position.set( 1, 1, 1 );
编辑:Object3D
现在有一个属性userData
。所以你可以使用这个模式:
mesh1.userData.id = "mesh1";
objects[ mesh1.userData.id ] = mesh1;
three.js r.73为了安全起见,不要覆盖现有的
Object3D.id
var objects = {};
mesh1.id2 = "mesh1";
objects[ mesh1.id2 ] = mesh1;
mesh2.id2 = "mesh2";
objects[ mesh2.id2 ] = mesh2;
objects[ "mesh2" ].position.set( 1, 1, 1 );
编辑:Object3D
现在有一个属性userData
。所以你可以使用这个模式:
mesh1.userData.id = "mesh1";
objects[ mesh1.userData.id ] = mesh1;
three.js r.73首先感谢您的关注;我照你说的做了,对象成员的位置改变了,但在我的场景中没有任何改变!如何更新场景以显示新位置?我必须从场景中移除该对象并重新添加它,或者…?好的,这就是工作!我只是在代码的顶部添加了这个:mesh.matrixAutoUpdate=true;首先感谢您的关注;我照你说的做了,对象成员的位置改变了,但在我的场景中没有任何改变!如何更新场景以显示新位置?我必须从场景中移除该对象并重新添加它,或者…?好的,这就是工作!我只是在代码的顶部添加了这个:mesh.matrixAutoUpdate=true;谢谢