Aframe Fire Raycaster на событие падения - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь поместить объект в трехмерную сцену из пользовательского интерфейса React.

Я могу зафиксировать данные / позицию сбрасывания и т. Д. c, сейчас я пытаюсь использовать это в RayCaster, чтобы определить, на какую трехмерную сущность был сброшен.

const handleDragStop = (e) => {
    console.log(e)

    const scene = document.getElementById('scene');
    const raycaster:any = scene.getAttribute("raycaster");
    const camera = AFRAME.scenes[0].camera;

    console.log(raycaster)
    console.log(AFRAME.scenes[0])

    const mouse = new window.THREE.Vector2();
    mouse.x = ( e.clientX / window.innerWidth ) * 2 - 1;
    mouse.y = - ( e.clientY / window.innerHeight ) * 2 + 1;
    raycaster.setFromCamera( mouse, camera );
    var intersects = raycaster.intersectObjects( scene.children );
    console.log(intersects)
};

В версии RayCaster для Aframe, похоже, нет функции raycaster.setFromCamera (), она не распознается как функция.

Как мне запустить raycaster из события выпадения?

РЕДАКТИРОВАТЬ

Я могу заставить его работать с новым Raycaster

const raycaster = new window.THREE.Raycaster();

Новый вопрос, как заставить этот raycaster использовать те же объекты, что и существующие один?

Спасибо

1 Ответ

1 голос
/ 28 января 2020

Чтобы получить доступ к ТРИ raycaster, вы должны сделать следующее на объекте с компонентом raycaster:

entityEl.components.raycaster.raycaster.setFromCamera(..);

Убедитесь, что вы находитесь в последней версии A-Frame

...