提取与raycaster相交的组件信息的最佳方法是什么?

时间:2018-08-04 19:34:45

标签: aframe

有什么方法可以提取与光线投射器相交的实体的信息(id,类等)? 我试图从evt.detail.el中找到信息,但没有成功。

AFRAME.registerComponent('collider-check', {

init: function () {
  this.el.addEventListener('raycaster-intersected', function (evt) {
    console.log(evt.detail.el);
  });
 }
});

1 个答案:

答案 0 :(得分:1)

问题是上面的代码记录了 raycasting 实体,而不是 raycasted 实体,因此它记录了光标。

使用上面的代码,您可以通过登录evt.detail.intersection.object.el来访问所需的数据。因此,您可以执行以下操作分别访问idclass

console.log(evt.detail.intersection.object.el.id);
console.log(evt.detail.intersection.object.el.className);

以下是运行中的代码的演示:https://codepen.io/dansinni/pen/bjjbWv

如果您尚未将this绑定到处理程序,而只需要基本属性数据,则还应该能够执行以下操作,但是要使用YMMV:

console.log(this.id);
console.log(this.className);

您还应该能够改为使用带有光标的组件,并依靠raycaster-intersection事件。请注意文档中的区别:https://aframe.io/docs/master/components/raycaster.html#events