我使用的是OrthographicCamera和一个旋转的简单PlaneBufferGeometry( 300,500 )。我正在使用下面的代码,但无论我在哪里单击鼠标,它都不会相交。我已经尝试了我能想到的所有方法,但还是不能让它工作。
下面是我的代码:
var vector = new THREE.Vector3( );
var raycaster = new THREE.Raycaster();
var dir = new THREE.Vector3();
vector.set( ( event.clientX / $(container).width() ) * 2 - 1, - ( event.clientY / $(container).height() ) * 2 + 1, - 1 ); // z = - 1 important!
vector.unproject( camera );
dir.set( 0, 0, - 1 ).transformDirection( camera.matrixWorld );
raycaster.set( vector, dir );
var intersects = raycaster.intersectObjects( objects, true );如有任何建议,我们将不胜感激
发布于 2015-08-09 04:00:39
似乎有一种更简单的方法可以做到这一点:
mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
raycaster.setFromCamera( mouse, camera );
var intersects = raycaster.intersectObjects( objects );如果您对此还有任何问题,这里有一个有效的示例:http://threejs.org/examples/#webgl_interactive_cubes
希望我能帮上忙!
https://stackoverflow.com/questions/31712580
复制相似问题