试图让相机在按下按钮时围绕地球平滑旋转到新位置。我已经完成了位置证明,以检查坐标是否正常

camera.position.set(posX,posY,posZ);
camera.lookAt(new THREE.Vector3(0,0,0));

但是,当我执行以下操作以尝试使其变为补间时,没有任何 Action 。似乎 .onupdate 没有被调用,我无法弄清楚我做错了什么
var from = {
        x : camera.position.x,
        y : camera.position.y,
        z : camera.position.z
      };

      var to = {
        x : posX,
        y : posY,
        z : posZ
      };
      var tween = new TWEEN.Tween(from)
      .to(to,600)
      .easing(TWEEN.Easing.Linear.None)
      .onUpdate(function () {
        camera.position.set(this.x, this.y, this.z);
        camera.lookAt(new THREE.Vector3(0,0,0));
      })
      .onComplete(function () {
        camera.lookAt(new THREE.Vector3(0,0,0));
      })
      .start();

任何帮助表示赞赏

最佳答案

你在你的动画函数中添加了 TWEEN.update() 吗?因为您的代码确实有效。见 fiddle 。 http://jsfiddle.net/Komsomol/r4nctoxy/

function animate() {
    TWEEN.update();
    requestAnimationFrame(animate);
    renderer.render(scene, camera);
    controls.update();
}

关于three.js - tween 相机在地球上的移动 Three.js 和 tween.js,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32883754/

10-10 22:50