一个简短的问题...我有一个事件侦听器,该侦听器侦听相交的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来“解决”问题,但这似乎不正确。
答案 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。