javascript - ThreeJS通过id获取元素(Mesh)

标签 javascript jquery 3d three.js mesh

我在 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 );

编辑:Object3D 现在有一个属性userData。所以你可以使用这个模式:

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

三.js r.73

关于javascript - ThreeJS通过id获取元素(Mesh),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17897821/

相关文章:

c++ - opengl 3d 点云从 x,y,z 二维数组渲染

ios - 核心动画 : moving a layer along a plane

java - 如何在 Jframe 中显示 3d 模型

javascript - $.each 语句在达到 "undefined"值时停止

java - jQuery ajax 调用不适用于自签名证书

javascript - 如何使用 d3 更新代表 SVG 行的所有数据?

javascript - 样式 native JavaScript 通知

javascript - 这段代码可以写得更短吗?

java - 如何在 JavaScript 中访问在 AJAX 请求中作为响应发送的自定义 Java 对象?

php - 如何调用从 PHP 传递变量的 Javascript