В своей сцене я использую сценарий для создания объекта с компонентом Raycaster. Это отлично работает, и слушатели событий работают нормально, сталкиваясь с моим наземным объектом. Но моя земля неровная, и мне нужно знать высоту земли, на которую попадает Raycaster. Насколько я знаю, это невозможно только с тем, что предоставляет A-Frame. Я хотел бы вызвать THREE raycaster.intersectObject, но я не могу получить рабочую ссылку на THREE raycaster. В документации A-Frame упоминается участник с именем raycaster, но для меня он не определен. Я пробовал несколько разных вещей, но безуспешно. Следующим моим планом было создание нового компонента, но я решил, что сначала спрошу здесь.
var ray = document.createElement('a-entity');
ray.setAttribute('id', 'raycaster');
ray.setAttribute('raycaster', 'objects: #ground');
ray.setAttribute('position', pos);
ray.setAttribute('rotation', '-90 0 0');
scene.appendChild(ray);
var ground = document.querySelector('#ground');
ray.addEventListener('raycaster-intersection', function() {
console.log(ray.raycaster); //undefined
console.log(ray.intersectedEls); //undefined
console.log(ray.objects); //undefined
console.log(ray.object3D.id); //gives me the THREE id
console.log(ray.object3D.intersectObject(ground.object3D, false)); //intersectObject not a function
});
Какие-нибудь подсказки? Я уверен, что делаю глупость.