Камера Raycaster с a-sky пересекается с курсором - PullRequest
0 голосов
/ 23 мая 2019

Я только начал разрабатывать с a-frame, извините, если ответ очевиден. В моем проекте я хотел бы получить положение a-sky, на которое смотрит пользователь. Для этого я добавил в камеру raycaster, который пока работает нормально.

HTML

<a-camera listener>
    <a-entity raycaster="far: 1000" position="0 -0.9 0" rotation="0 0 0"></a-entity>
</a-camera>

<a-sky follow-intersection
     id="sky"
     src="#skybox-image">

</a-sky>

TS

AFRAME.registerComponent("follow-intersection", {
  init: function() {
    this.el.addEventListener("raycaster-intersected", evt => {
      this.intersectingRaycaster = evt.detail.el.components.raycaster;
    });
    this.el.addEventListener("raycaster-intersected-cleared", () => {
      this.intersectingRaycaster = null;
    });
  },
  tick: function(t) {

      if (!this.intersectingRaycaster) {
        return;
      }

      const intersection = this.intersectingRaycaster.getIntersection(this.el);

      if (intersection) {
        let point = intersection.uv;
        console.log(point.x, point.y);
      }

Пока все работает нормально, проблема в том, что после того, как я установил курсор в сцене (что необходимо для проекта)

<a-scene
  cursor="rayOrigin: listener"
>

Я всегда получаю пересечения с курсором, которые не нужны.

Как я могу получить только пересечения камеры? Спасибо!

1 Ответ

0 голосов
/ 23 мая 2019

Я не думаю, что курсор в a-scene необходим.Вы можете просто сделать:

<a-camera listener>
    <a-entity cursor raycaster="far: 1000" position="0 -0.9 0" rotation="0 0 0"></a-entity>
</a-camera>
...