2016-12-09 9 views
0

Im группировка <a-box> с упаковкой <a-entity>.
Затем я использую компонент курсора в <scene> и пытаясь выбрать/выбрать отдельные объекты, которые составляют обертку <a-entity>, но выбирается только обертка <a-entity>, а не отдельные объекты.Сборка вложенных объектов A-frame (VR)

Им очень интересно. Я посмотрел на все фанаты курсора (https://aframe.io/docs/0.2.0/components/cursor.html), и нет конкретного упоминания об этом сценарии. Он упоминает, что raycaster (https://aframe.io/docs/0.2.0/components/raycaster.html), используемый курсором , возвращает первый объект, который пересекается с проецируемым лучом ... который будет сгруппированным объектом ... так что всегда его возвращение имеет смысл.

все работает нормально, когда все <a-box> присоединяются к глобальному <a-scene>, и их можно выбрать индивидуально.

Правильно ли я предполагаю, что сбор только работает правильно, когда конкретный объект является глобальным объектом (а не вложенным)?

ответ

0

Не совсем. вы можете добавить компонент raycaster в объект курсора. и задайте конкретные объекты, которые вы хотите выбрать. вы можете увидеть этот вопрос, который я задал до how to set “objects” property in aframe raycaster component.

+0

Я уже пробовал это, он не работает ... . Все объекты, которые я хочу выбрать, имеют добавленный к ним класс «v3d_cube» – deepblue

+0

Я изменил исходный код компонента «raycaster», как этот '' 'init: function() { this.direction = new THREE.Vector3() ; this.intersectedEls = []; this.objects = []; this.prevCheckTime = undefined; this.raycaster = new THREE.Raycaster(); this.updateOriginDirection(); }, '' ' –

+0

Извините, я не могу отредактировать свой последний комментарий. и я изменил функцию raycaster 'refreshObjects', отмеченную' this.objects = [] 'в строке 58521. Затем я зарегистрировал компонент« update-raycaster ». код 'AFRAME.registerComponent ('обновление-raycaster', { схемы: {тип: 'селектор'}, INIT: функция() { вар raycasterEl = this.data; raycasterEl.components.raycaster.data. objects = "#" + this.el.id; raycasterEl.components.raycaster.refreshObjects(); } }); '. добавьте этот компонент 'update-raycaster =" # cursor ", для которого вы хотите выбрать объект. Извините за мой английский. пожелать, чтобы мои слова были полезны –