Я получил компонент raycaster, подключенный к объекту контроллера vr:
<a-entity id="righthand"
vive-controls="hand: right; "
oculus-touch-controls="hand: right;"
controls-ui
collider-check
>
<a-entity raycaster="objects: .collidable; showLine: true; far: 100; " line="color: blue; opacity: 0.5" ></a-entity>
</a-entity>
, и я получил объект в сцене, который будет получать события raytrace:
<a-entity id='myCube' class="collidable" position="0 1.25 -6" obj-model="obj: #cube-obj; mtl: #cube-mtl" >
</a-entity>
Как сделатьЯ получаю идентификатор или любую ссылку на столкнувшуюся сущность в событии 'raycaster-intersected'?Я попытался следующий код, и, кажется, ничего не содержит эти данные:
AFRAME.registerComponent('collider-check', {
dependencies: ['raycaster'],
init: function () {
this.el.addEventListener('raycaster-intersected', function (evt) {
console.log(evt.detail.el); // not here
console.log(evt.detail.intersection); // not here
console.log(evt.detail);// not here
console.log('Player hit something!');
});
}
});
Заранее спасибо.
--------- Обновление -----------
@ Петр Адам Милевский ответ правильный.Событие, которое нужно прослушать, это пересечение с Raycaster вместо пересечение с Raycaster .Таким образом, вы можете зациклить массив пересекающихся объектов.
Возможно ли получить тот же результат от пересеченного лучом ??Если это событие испускается на пересеченной сущности, то должна быть возможность получить его идентификатор и другие свойства. Я не думаю, что это идеальный цикл по массиву каждый раз, когда происходит событие пересечения.