ThreeJS通过id获取元素(网格)

ThreeJS get element (Mesh) by id

本文关键字:网格 元素 获取 通过 id ThreeJS      更新时间:2023-09-26

我在Three.JS中有一个Mesh对象
如何获取id为的Mesh对象并更改其位置,如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 );

EDIT:Object3D现在具有属性userData。所以你可以使用这个模式:

mesh1.userData.id = "mesh1";
objects[ mesh1.userData.id ] = mesh1;

three.js r.73