【发布时间】:2017-07-29 04:04:13
【问题描述】:
我是threejs 的新手。
我的场景中有一个对象,我们可以使用TransformControls.js 在所有 XYZ 轴上移动场景。
当我使用鼠标单击并在任意轴(即 X、Y、Z)上拖动来平移/移动场景内的对象时。我想获取场景内该特定对象的更新后的 X、Y、Z 位置坐标。
我在渲染场景之前使用mesh.position.set( 0, 0, 0 ); 设置对象的位置,但我无法找到如何获取场景内对象的动态位置。
最终,我想在转换操作后保存更新的位置坐标,并在用户返回页面或刷新页面时重新渲染具有更新位置坐标处的对象的场景。
任何指针都会很有帮助。
谢谢
【问题讨论】:
-
mesh.position是一个Vector3,它是网格的本地位置。看起来 TransformControls 更新了这个向量,所以你应该能够在转换完成后从mesh.position获得新的位置。这是你想做的事情,还是mesh.position在转换后没有更新? -
是的,这正是我想要做的。当我在调用
THREE.TransformControls(camera, renderer.domElement);之后执行console.log(mesh.position.x + ',' + mesh.position.y + ',' + mesh.position.z)时,我得到的输出为0,0,0所以是的,当我在场景中移动对象后,mesh.position 没有得到更新。 -
还有一个问题:您使用的是哪个版本的
three.js? -
我正在使用
three.js R73 -
记录下来,r73 已经很老了。当前版本是 r84。我了解您是否有限制升级到最新版本,但强烈建议您这样做。
标签: javascript three.js