Three.js获取translateZ值[three.js]

时间:2018-11-02 18:07:04

标签: javascript three.js

在这里的任何地方,我似乎都找不到正确的答案,我也自己没有想出解决方案。我试图找到一个'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)”。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

如果您想知道f2obj.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

我正确理解了你的意图吗?