событие пересекающихся с raycaster пожаров при загрузке страницы - PullRequest
0 голосов
/ 25 июня 2018

Короткий вопрос ... У меня есть EventListener, который слушает пересечение Raycaster и лазерное управлениеОн запускает событие сразу, когда я запускаю страницу.Кто-нибудь знает, почему и как это предотвратить?

(на моем объекте с классом .rayTarget)

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

(в моей сцене)

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

Использование Aframemaster branche (июнь 2018)

В настоящее время я добавил setTimeout, который «решает» проблему, но это не так.

1 Ответ

0 голосов
/ 26 июня 2018

Вероятно, стрелки указывают на что-то во время загрузки сцены.Возможно, пока их положение не будет установлено в соответствии с показаниями контроллера.

Если вы хотите лучшее решение, чем setTimeout, вы можете установить raycaster с помощью 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 флаги в вашем коде.Проверьте их здесь .
...