Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Three.js 如何在从OBJLoader加载的obj文件上获得鼠标单击位置?_Three.js_Webgl - Fatal编程技术网

Three.js 如何在从OBJLoader加载的obj文件上获得鼠标单击位置?

Three.js 如何在从OBJLoader加载的obj文件上获得鼠标单击位置?,three.js,webgl,Three.js,Webgl,我使用OBJLoader加载了模型,下面是加载obj文件的代码: var loader = new THREE.OBJLoader(); loader.load('obj/teeth/teeth4_5.obj', function(object) { model = object; scene.add( model ); objects.push( model ); });

我使用OBJLoader加载了模型,下面是加载obj文件的代码:

        var loader = new THREE.OBJLoader();
        loader.load('obj/teeth/teeth4_5.obj', function(object) {
            model = object;
            scene.add( model );
            objects.push( model );
        });
我试着用raycaster找到交叉点。我在three.js中的canvas_interactive_cubes示例()中实现了我的代码。以下是查找交叉点的代码:

    function onDocumentMouseDown( event ){
        event.preventDefault();
        var mouseX = (event.clientX / window.innerWidth)*2-1;
        var mouseY = -(event.clientY /window.innerHeight)*2+1;
        var vector = new THREE.Vector3( mouseX, mouseY, 0.5 );
        projector.unprojectVector( vector, camera );
        var raycaster = new THREE.Raycaster( camera.position, vector.sub( camera.position ).normalize() );
        var intersects = raycaster.intersectObjects( scene.children );
        console.log( intersects[0].point);
    }
不幸的是,我无法获得交叉点的x、y、z坐标,无论我在哪里单击,它总是显示“TypeError:intersects[0]未定义”


我被困在这里好几天了。有人能告诉我在加载的obj文件上获取交叉点的方法吗?感谢您的帮助。

尝试添加递归标志,如下所示:

var intersects = raycaster.intersectObjects( objects, true );

three.js r.58

哇,真管用。。。那太容易了。好像我问了个愚蠢的问题。在一个大的obj文件上找到交集需要很长时间。非常感谢你的回答!!我花了两个小时在这上面。添加
,true
,它就会工作。我从未在我研究过的几个例子中见过它。谢谢