Aframe Ray Caster Пересечение - PullRequest
0 голосов
/ 21 ноября 2018

После перехода на основную сборку Aframe Событие пересечения raycaster, похоже, обнуляется, хотя я сохранил тот же код:

<script src="https://cdn.jsdelivr.net/gh/aframevr/aframe@efcc8a0a919811fe5bd4ab6fd60bfbb8e85a98a1/dist/aframe-master.min.js"></script>

с Зарегистрированным компонентом:

AFRAME.registerComponent('collider-check', {
  dependencies: ['raycaster'],
  init: function () {
    this.el.addEventListener('raycaster-intersected', function (evt) {
      console.log(evt.detail.intersection);//this returns null
      var intersection=evt.detail.intersection.point;
      startTimer(intersection.x,intersection.y,intersection.z);
    });
  }
});

икамера, в которую я положил коллайдер-чек

<a-entity id="cameraParent"  position="0 0 0" >
        <a-entity id="cam" camera="zoom:1;"  look-controls collider-check position="0 0 0" >
          <a-entity cursor=" rayOrigin: mouse"
            geometry="primitive: ring; radiusInner: 0; radiusOuter: 0"
            material="color: black; shader: flat"></a-entity>

          <a-entity raycaster="showLine:true; far: 1000" line="color:orange; opacity:1" ></a-entity>
        </a-entity>
      </a-entity>

Мое небо, где я хочу поймать перекрестки

 <a-sky  class="collidable" id="image-360" radius="200"  src="#{{$tour_images[0][0]->name}}" data-image-id="{{$tour_images[0][0]->id}}"></a-sky>

1 Ответ

0 голосов
/ 21 ноября 2018

Теперь вам нужно захватить данные пересечения вручную, чтобы предотвратить мусор памяти в деталях события.

Подробная информация о событии предоставляет удобные ссылки на метод для захвата пересечения.

evt.detail.getIntersection(this.el);

Также событие raycaster-intersected больше не является спамом.Он вызывается только один раз при старте перекрестка.Если вам нужно спамить, прослушайте событие, сохраните переменную и используйте tick.

...