我正在尝试使用AFrame库为游戏编写库存系统。我有一个自定义组件,该组件用于将我要拾取的项目设置为不可见,并将现有项目变为可见。但是,一旦运行它将无法正常工作。
当前,单击时我有一个单击事件监听器设置检查。单击时将其设置为将目标项目设置为不可见(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"
>
我不明白为什么单击功能根本不起作用,因为我已经复制了教程中的格式并且那些组件工作正常。
答案 0 :(得分:0)
您的示例对我来说是冻结的,但是请尝试使用pick-up
而不是pickUp
。 HTML属性不区分大小写。我们应该为此添加警告。