【发布时间】:2017-07-05 10:19:25
【问题描述】:
我使用 networked-aframe 设置的多人 A-Frame 环境存在问题。
我希望连接的前三个用户具有不同的生成位置,并且任何其他用户都生成在第三个位置,但我无法让它工作。这是我目前在 Html 中的内容:
<a-entity id="player"
networked="template:#avatar-template;showLocalTemplate:true;"
camera
positioner=""
wasd-controls
look-controls>
<a-cursor></a-cursor>
</a-entity>
这里是它的 JS 组件:
AFRAME.registerComponent('positioner', {
init: function() {
var el = this.el,
counter = 0;
if (counter == 0) {
el.setAttribute('position', {x:-16, y:6, z:-10});
counter++;
}
else if(counter == 1) {
el.setAttribute('position', {x:-10, y:6, z:-10});
counter++;
}
else {
el.setAttribute('position', {x:-5, y:6, z:-10});
counter++;
}
}
});
我发现我必须像这样同步其他组件:
var avatarSchema = {
template: '#avatar-template',
components: [
'positioner',
'position',
'rotation',
'scale',
{
selector: '.head',
component: 'material'
},
{
selector: '.hairs',
component: 'show-child'
}
]
};
NAF.schemas.add(avatarSchema);
这是一个大项目,所以有很多代码。如果您需要其他任何东西,例如场景设置或头像设置,请告诉我,我会添加。
【问题讨论】:
-
imo 定位器将为每个玩家触发一次,因此计数器将始终为 0。您知道如何获取玩家列表吗?您可以根据加入时所在的玩家更改位置
-
这听起来很合理。不,我不知道如何获取玩家列表,我该怎么做?
-
这就是我问的原因,我不知道:D 甚至把它放在问题中:github.com/haydenjameslee/networked-aframe/issues/19。如果我得到任何回应,我会告诉你。如果您找到方法,请将其发布为 anwser
-
啊,我明白了:D 好的,会的,谢谢!
-
我想我得到了一些东西
标签: javascript multiplayer aframe