Я пытаюсь написать систему инвентаря для игры, используя библиотеку AFrame. У меня есть пользовательский компонент, который настроен для установки предмета, который я собираю, на невидимость и превращения предмета в руке видимым. Однако, когда он работает, он не будет работать.
В настоящее время при щелчке у меня есть проверка настроек clickl. При щелчке устанавливается целевой элемент invisible (el) и видимый объект в руке (handObj). Похоже, что функция щелчка не работает вечером, так как у меня настроен файл console.log, чтобы просто проверить, работает функция или нет.
Редактировать: я создал глюк с примером проекта
https://glitch.com/~tundra-ironclad
var hands = [null, null];
AFRAME.registerComponent('pickUp', {
schema: {
handObj: {type: 'selector', default: ''},
id: {type: 'string', default: ''}
},
init: function() {
var el = this.el;
var data = this.data;
el.addEventListener('click', function() {
//pickup="target= #right
console.log("hello");
if(hands[0] == null) hands[0] = data.id;
else if (hands[1] == null) hands[1] = data.id;
else break;
el.setAttribute('visible', 'false');
data.handObj.setAttribute('visible', 'true');
});
}
});
<a-box id="left1"
color="#AA0000" class="clickable"
position="8.000 0.200 7" depth = ".25" height = ".25" width = ".25"
event-set__enter="_event: mouseenter; material.color: #FF0000"
event-set__leave="_event: mouseleave; material.color: #AA0000"
pickUp="handObj: #left2; id: left"
>
Я не понимаю, почему функция щелчка не работает вообще, так как я скопировал форматирование из учебников, и эти компоненты работают нормально.