我正在使用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 );
任何建议都将不胜感激
答案 0 :(得分:0)
似乎有一种更简单的方法:
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
我希望我能帮忙! =)