在Three.js应用程序中,我想获取透视摄影机所指向的对象,并阅读raycaster文档。
我找到的所有文档都谈到了使用鼠标坐标进行Vector光线投射以及使用Vector2从鼠标坐标进行的光线投射,但是我不想使用鼠标的2D坐标。摄像机可以出于任何原因旋转:单击并拖动屏幕,触摸控件甚至是VR控件,我只想从透视摄像机的中心进行光线投射,并将其查看的对象设置为“选定”。

有什么建议么?

最佳答案

THREE.Raycaster.set()需要origindirection vector :



将相机的世界位置设置为origin,并将其世界方向设置为direction:

var raycaster = new THREE.Raycaster();

raycaster.set( camera.getWorldPosition(), camera.getWorldDirection() );

var intersects = raycaster.intersectObjects( objectsArray );
if ( intersects.length > 0 ) {
    //...
}

09-25 18:37