Three.js A框架如何从光线投射器相交事件获取相交元素

Three.js A框架如何从光线投射器相交事件获取相交元素,three.js,aframe,raycasting,Three.js,Aframe,Raycasting,我的右侧激光控制器上连接了一个raycaster交叉口事件侦听器,如下所示: <a-entity id="rightController" laser-controls="hand: right" raycaster="objects: .collidable; far: 20"></a-entity> ... rightController.addEventListener("raycaster-intersection", function(e) { con

我的右侧激光控制器上连接了一个raycaster交叉口事件侦听器,如下所示:

<a-entity id="rightController" laser-controls="hand: right" raycaster="objects: .collidable; far: 20"></a-entity>

...

rightController.addEventListener("raycaster-intersection", function(e) {
   console.log(e);
});

这就好像事件输出不完整……一个框架文档暗示“els”数组应该包含我要查找的内容,但它是空的。也没有.getIntersection()函数。有什么想法吗?

使用A-Frame 1.2.0 您要收听的事件是:raycaster intersected

然后,您可以从以下位置获取交点数据:evt.detail.el.components.raycaster,该方法也具有getIntersection(el)方法

下面的例子


AFRAME.registerComponent('cursor-listener'{
init:函数(){
this.el.addEventListener('raycaster-intersected',evt=>{
this.raycaster=evt.detail.el;
});
this.el.addEventListener('raycaster-intersected-cleared',evt=>{
this.raycaster=null;
});
},
勾选:函数(){
如果(!this.raycaster){return;}//不相交。
让intersection=this.raycaster.components.raycaster.getIntersection(this.el);
如果(!intersection){return;}//不相交
//交叉
控制台日志(交叉点);
}
});