Как насчет пользовательского компонента, подобного этому:
- raycaster-intersected
события пожаров - вы храните raycaster
- raycaster-intersected-cleared
- вы отменяете ссылку на Raycaster
- на tick
, если существует ссылка на raycaster, получить точку пересечения и выполнить вычисления.
AFRAME.registerComponent("foo", {
init: function() {
this.el.addEventListener("raycaster-intersected", evt => {
this.intersectingRaycaster = evt.detail.el.components.raycaster;
});
this.el.addEventListener("raycaster-intersected-cleared", () => {
this.intersectingRaycaster = null;
});
},
tick: function() {
if (!this.intersectingRaycaster) {
return;
}
const intersection = this.intersectingRaycaster.getIntersection(this.el);
if (intersection) {
let point = intersection.point;
// your calculations
}
}
});
Проверьте это в этой скрипке .