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;谢谢