网络化的A-Frame Gallery为房间里的所有人改变了天空

问题描述 投票:0回答:1

我正在尝试使用网络A-Frame创建A-Frame 360​​库。当房间中的一个人点击链接以更改图像时,环境必须为房间中的每个人进行更改。

我使用了NAF-Dynamic房间示例并与A-Frame 360​​图库合并。我需要帮助来了解如何将a-sky属性更改为网络实体。

<a-assets>
    <img id="city" crossorigin="anonymous" src="https://cdn.aframe.io/360-image-gallery-boilerplate/img/city.jpg">
    <img id="city-thumb" crossorigin="anonymous" src="https://cdn.aframe.io/360-image-gallery-boilerplate/img/thumb-city.jpg">
    <img id="cubes-thumb" crossorigin="anonymous" src="https://cdn.aframe.io/360-image-gallery-boilerplate/img/thumb-cubes.jpg">
    <img id="sechelt-thumb" crossorigin="anonymous" src="https://cdn.aframe.io/360-image-gallery-boilerplate/img/thumb-sechelt.jpg">
    <audio id="click-sound" crossorigin="anonymous" src="https://cdn.aframe.io/360-image-gallery-boilerplate/audio/click.ogg"></audio>
    <img id="cubes" crossorigin="anonymous" src="https://cdn.aframe.io/360-image-gallery-boilerplate/img/cubes.jpg">
    <img id="sechelt" crossorigin="anonymous" src="https://cdn.aframe.io/360-image-gallery-boilerplate/img/sechelt.jpg">

    <!-- Image link template to be reused. -->
    <script id="link" type="text/html">
      <a-entity class="link"
        geometry="primitive: plane; height: 1; width: 1"
        material="shader: flat; src: ${thumb}"
        event-set__1="_event: mousedown; scale: 1 1 1"
        event-set__2="_event: mouseup; scale: 1.2 1.2 1"
        event-set__3="_event: mouseenter; scale: 1.2 1.2 1"
        event-set__4="_event: mouseleave; scale: 1 1 1"
        set-image="on: click; target: #image-360; src: ${src}"
        sound="on: click; src: #click-sound"></a-entity>
    </script>
  </a-assets>

  <!-- 360-degree image. -->
  <a-sky id="image-360" radius="10" src="#city"></a-sky>

  <!-- Image links. -->
  <a-entity id="links" layout="type: line; margin: 1.5" position="0 -1 -4">
    <a-entity template="src: #link" data-src="#cubes" data-thumb="#cubes-thumb"></a-entity>
    <a-entity template="src: #link" data-src="#city" data-thumb="#city-thumb"></a-entity>
    <a-entity template="src: #link" data-src="#sechelt" data-thumb="#sechelt-thumb"></a-entity>
  </a-entity>
aframe webvr
1个回答
1
投票

NAF可以发送消息:https://github.com/networked-aframe/networked-aframe#sending-custom-messages

// Listener.
NAF.connection.subscribeToDataChannel('changeSky', () => {
  sky.setAttribute('material', 'src', 'texture.jpg');
})

// Broadcaster.
NAF.connection.broadcastDataGuaranteed('changeSky');
© www.soinside.com 2019 - 2024. All rights reserved.