在这里的任何地方,我似乎都找不到正确的答案,我也自己没有想出解决方案。我试图找到一个'object.translateZ(-100)'将提供的位置值,但没有这样做。原因是我想让动画和物体飞向相机,但将Z-100停在相机前面-使用Tween.js:
new TWEEN.Tween( object.position )
.to( {x: camera.position.x, y: camera.position.y, z: (camera.position.z)}, 2000 )
.easing( TWEEN.Easing.Exponential.InOut )
.start();
new TWEEN.Tween( object.rotation )
.to( {x: camera.rotation.x, y: camera.rotation.y, z: (camera.rotation.z)}, 2000 )
.easing( TWEEN.Easing.Exponential.InOut )
.start()
.onComplete(function(){
object.updateMatrix();
object.translateZ(-500);
});
现在,它会补间,降落在相机上,然后平移回正确的位置。因此,我基本上需要找出另一个目标位置,而不是“ camera.position”,而是从该位置“翻译Z(-500)”。有什么建议吗?
答案 0 :(得分:0)
如果您想知道f2
将obj.translateZ(-100)
移动到的位置,则可以通过操纵THREE.js向量轻松找到这一点。请考虑以下内容:
obj
现在,let pos = new THREE.Vector3(); // Create a new empty 3D vector
obj.getWorldPosition(pos); // Set pos to be obj's world position
pos.add(new THREE.Vector3(0, 0, -100)); // Add (0,0,-100) to pos
应该包含您要寻找的点,您可以轻松地创建矢量对象,如下所示:pos
。
我正确理解了你的意图吗?