联网的AFrame动态房间无法使用Easy RTC
问题
您好,我已经使用以下表单重新混合了联网AFrame动态房间的模板:
https://glitch.com/edit/#!/power-lily-pancake?path=public%2Fscene.html%3A41%3A0
由于某种原因,每当我将这些代码行添加到<a-scene>
标记时,整个项目中断:
networked-scene="
room: audio;
adapter: easyrtc;
audio: true;
video: true;
debug: true;
inspector=https://cdn.jsdelivr.net/gh/aframevr/aframe-inspector@master/dist/aframe-inspector.min.js"
我想知道是否有办法将这些代码行添加到<a-scene>
标记中,使其看起来如下所示:
<a-scene dynamic-room networked-scene="
room: audio;
adapter: easyrtc;
audio: true;
video: true;
debug: true;
inspector=https://cdn.jsdelivr.net/gh/aframevr/aframe-inspector@master/dist/aframe-inspector.min.js"
>
但要有它,这样动态房间才能继续工作。这意味着如果两个人在不同的房间里,他们将看不到对方,但如果他们在同一个房间,他们将能够看到对方。如何做到这一点?
链接
A框架网站:https://aframe.io
网络A-Frame文档:https://www.npmjs.com/package/networked-aframe
包含我当前代码的项目:https://glitch.com/edit/#!/power-lily-pancake?path=public%2Fscene.html%3A41%3A0
解决方案
dynamic-room
component旨在附加,而不是更新(since it doesn't handle updates)。这就是dynamic-room example scene只有dynamic-room
组件的原因,也是dynamic-room
不能与networked-scene
一起使用的原因。
我会将所有networked-scene
属性抛给dynamic-room
设置,但也可以让这两个属性非常像您希望的那样一起工作:
<a-scene dynamic-room networked-scene>
解决此问题的一种方法是使用networked-scene
的connectOnLoad
property-让dynamic-room
更换房间,然后决定何时连接。
networked-scene
检查init中的connectOnLoad
,因此它将始终使用默认值。我们需要确保默认为false
而不是true
。
所以需要做两件事:
在场景初始化前更改
networked-scene
默认值:<script> // This is hacky, another way would be copying the component and make it react to updates AFRAME.components["networked-scene"].schema.connectOnLoad.default = false; </script> <a-scene dynamic-room networked-scene>
设置房间id时发出
connect
:// set the room id el.setAttribute("networked-scene", "room", roomID); // notify `networked-scene` that you're ready to connect el.emit("connect", null, false);
在this glitch中签出
相关文章