2015-09-28 5 views
3

в приложении Three.js Я хочу получить объект, на который указывает перспективная камера, и сделать это, чтобы прочитать документы raycaster. Все документы, которые я нашел, говорят о том, что они делятся с камерой и вектором Vector2 от координат мыши, но я не хочу использовать 2d координаты мыши. Камера может вращаться по любой причине: щелкнуть и перетащить экран, сенсорное управление или даже управление VR, я просто хочу раскошелиться с центральной точки перспективной камеры и установить как «выбранный» объект, на который он смотрит.Three.js выбрать объект с камерой, без мыши

Любые предложения?

ответ

6

THREE.Raycaster.set() ожидает origin и А direction векторов:

происхождение - происхождение вектор, где луч слепки с.

направление - вектор направления, который дает направление лучу. Должен быть нормализован.

Установите камеры мира позицию origin и его мир, как направление direction:

var raycaster = new THREE.Raycaster(); 

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

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

работал как шарм, спасибо много! – ascallonisi