Three.js世界坐标从鼠标位置与正交相机

时间:2014-09-21 06:19:21

标签: javascript three.js mouse

我知道这个问题已被多次询问并回答,但我目前对我所遵循的任何答案都没有运气(主要是这一个Mouse / Canvas X, Y to Three.js World X, Y, Z)。

我已完成对象选择并正在使用我正在使用的代码如下

onMouseMove:function(event)
{
    event.preventDefault();

    var scope       =   Game.GSThree,
        $container  =   $(scope.container.element),
        width       =   $container.width(),
        height      =   $container.height(),
        vector,
        ray,
        intersects;

    scope.mouse.x   =   (event.clientX - scope.container.padding.left) / width * 2 - 1;
    scope.mouse.y   =   - (event.clientY / height) * 2 + 1;
    scope.mouse.z   =   0.5;
    vector          =   new THREE.Vector3(scope.mouse.x , scope.mouse.y , scope.mouse.z);
    ray             =   scope.projector.pickingRay(vector.clone() , scope.camera);
    intersects      =   ray.intersectObjects(scope.tiles.children);

    if(intersects.length)
    {
        var hovered = intersects[0].object;
        scope.selectObject(hovered);
    }
}

这很好用,但实际上我还需要知道当前鼠标位置的确切世界坐标。我不确定我所尝试的解决方案是否适用于正交相机,这正是我所使用的。如果我记录scope.mouse.xvector.x这些不提供世界坐标,ray会发现对象非常好,但我不知道如何获取当前坐标射线在世界上。

1 个答案:

答案 0 :(得分:1)

我认为你在寻找的是:

相交[0] .point;