我正在尝试使用AFrame库为游戏编写库存系统。我有一个自定义组件,用于设置我正在拾取的项目不可见并将手头项目显示为可见。然而,当它运行时,它将无法工作。
目前,我点击了clicklistener设置检查。单击时,将其设置为将目标项设置为不可见(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"
>
我不明白为什么click函数根本不起作用,因为我从教程中复制了格式并且这些组件工作正常。
你的例子冻结我,但尝试pick-up
而不是pickUp
。 HTML属性不区分大小写。我们应该为此添加警告。