【问题标题】:ThreeJS, get vector towards clicked directionThreeJS,获取指向单击方向的矢量
【发布时间】:2016-05-26 15:17:32
【问题描述】:

我想要实现的是使特定网格向特定矢量移动,直到最终被玩家停止。

到目前为止,我已经设法获得了单击画布的 XY 坐标,并使用以下代码将它们投影到 3d 中。不幸的是,我不确定要采取什么方法来获得指向点击位置的方向。

var vector = new THREE.Vector3();

vector.set(
    ( event.clientX / window.innerWidth ) * 2 - 1,
    + ( event.clientY / window.innerHeight ) * 2 + 1,
    0.5 );

vector.unproject( camera );

var dir = vector.sub( camera.position ).normalize();

var distance = + camera.position.z / dir.z;

var pos = camera.position.clone().add( dir.multiplyScalar( distance ) );

【问题讨论】:

    标签: javascript three.js


    【解决方案1】:

    这假定目标 Vector3 和每帧移动的最大距离为 0.01。

      var vec1 = target.clone(); // target
      vec1.sub(mesh.position); // target - position
      var dist = Math.min(vec1.length(), .01); // assume .01 is maximum movement
      if (dist > 0) {
        vec1.setLength(dist); // this will be the movement
        mesh.position.add(vec1); // this moves the messh
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-28
      相关资源
      最近更新 更多