加载页面时,raycaster相交的激发事件

时间:2018-06-25 15:11:28

标签: aframe

一个简短的问题...我有一个事件侦听器,该侦听器侦听相交的raycaster和激光控件。当我启动页面时,它将立即触发事件。有人知道为什么以及如何防止这种情况吗?

(在我的类为.rayTarget的对象上)

this.el.addEventListener("raycaster-intersected", function(){
// random code
});

(在我的场景中)

< a-entity oculus-go-controls=""  laser-controls="hand: right" raycaster="objects:.rayTarget;"></a-entity>

使用Aframe主分支(2018年6月)

当前,我添加了一个setTimeout来“解决”问题,但这似乎不正确。

1 个答案:

答案 0 :(得分:0)

加载场景时,双手可能指向某物。也许要等到根据控制器读数设置好位置为止。

如果您想要比setTimeout更好的解决方案,则可以在加载场景或窗口时使用setAttribute("raycaster", .....设置光线投射器:

您可以等到窗口加载完毕

window.onload = function() {
  console.log("The window is loaded")
}


     或等到场景加载完毕

AFRAME.registerComponent("foo", {
  init: function() {
    this.el.addEventListener("loaded", (e) => {
      console.log("The scene is loaded")
    })
  }
})


然后,您可以设置您的内容,或在代码中切换一些loaded标志。检出它们here