Hola, he remezclado una plantilla para salas dinámicas aframe en red utilizando un formulario:
https://glitch.com/edit/#!/power-lily-pancake?path=public%2Fscene.html%3A41%3A0
Por alguna razón, cada vez que agrego estas líneas de código a la etiqueta <a-scene> , todo el proyecto se rompe:
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" Me pregunto si hay alguna forma de agregar esas líneas del código a la etiqueta <a-scene> para que se vea así:
<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" >Pero haz que las salas dinámicas sigan funcionando. Es decir, si dos personas están en diferentes habitaciones, no se verán, pero si están en la misma habitación, podrán verse. ¿Cómo se puede hacer esto?
Sitio web de un marco: https://aframe.io
Documentación del marco A en red: https://www.npmjs.com/package/networked-aframe
Proyecto que contiene mi código actual: https://glitch.com/edit/#!/power-lily-pancake?path=public%2Fscene.html%3A41%3A0
Afaik, el componente dynamic-room está diseñado para adjuntar la networked-scene , no para actualizarla ( ya que no maneja las actualizaciones ). Es por eso que la escena de ejemplo de sala dinámica solo tiene un componente dynamic-room , y también por qué la dynamic-room no funciona con networked-scene .
Arrojaría todos los atributos de la networked-scene a la configuración dynamic-room , pero también es posible hacer que los dos funcionen juntos más o menos como lo desea:
<a-scene dynamic-room networked-scene> Una forma de resolver esto sería usar la propiedad connectOnLoad de la networked-scene : dejar que la dynamic-room cambie la sala y luego decidir cuándo conectarse.
Dado que networked-scene verifica connectOnLoad en init , siempre usará el valor predeterminado. Necesitamos asegurarnos de que el valor predeterminado sea false en lugar de true .
Así que hay que hacer dos cosas:
cambie los valores predeterminados de la escena networked-scene antes de inicializar la escena:
<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> emit connect cuando se establece la identificación de la habitación:
// set the room id el.setAttribute("networked-scene", "room", roomID); // notify `networked-scene` that you're ready to connect el.emit("connect", null, false);Compruébalo en este glitch