Как видно из обсуждения , если вы хотите игнорировать определенные объекты, вы не должны полагаться на видимость.Правильным способом было бы использовать белый список objects
:
<a-scene cursor raycaster='objects: .clickable>
Белый список использует типичные селекторы CSS, поэтому в приведенном выше примере raycaster будет взаимодействовать только с элементами, имеющими класс clickable
.
Вы можете добавить / удалить его с видимостью:
if (condition) {
el.setAttribute('visible', 'false')
el.classList.remove('clickable')
} else {
el.setAttribute('visible', 'true')
el.classList.add('clickable')
}
Вы можете проверить это в этой скрипке.Нажмите на сферу, чтобы сделать окно кликабельным / не кликабельным.
Хакерский обходной путь может также установить scale
на 0 0 0
.Элемент не будет виден и не будет кликабелен.