Компонент Aframe не работает в v1 - PullRequest
0 голосов
/ 27 марта 2020

Я создаю многопользовательский опыт с SocketIO и AFrame. Этот фрагмент отлично работал в Aframe 0.5, однако, когда я переключился на v1, он неожиданно перестал работать. «Компонентный» слушатель просто никогда не срабатывает. «Нашел себя» всегда печатается, так что я не такой, как я, - ноль.

socket.on('connect',function(){

  console.log('connected to server');
  let myself=document.getElementById('user-cam')
  if(myself!=null){
    console.log(name)
    console.log("FOUND MYSELF")
    const player={name:name,translation:[0,0,0],rotation:[0,0,0]};
    socket.emit('player connect',player);
    isConnected=true;
    myself.addEventListener('componentchanged', function (evt) {
      console.log("Component Changed");
      console.log(evt.detail.newData);
      if(evt.detail.name==='position'){

        player.translation=[evt.detail.newData.x,evt.detail.newData.y,evt.detail.newData.z];
        socket.emit("PlayerMove",player);
      }
      if (evt.detail.name==='rotation'){
        player.rotation= [evt.detail.newData.x,evt.detail.newData.y,evt.detail.newData.z];
        socket.emit("PlayerRotate",player);
      }
    });
  }
  else{
    console.log("NOT FOUND");
  }

});

1 Ответ

0 голосов
/ 06 апреля 2020

«компонент изменен» больше не работает для атрибутов положения / поворота / масштаба, если они изменены с использованием el.object3D.position / вращение / масштаба в AFRAME 0.9 или более поздней версии. Чтобы отслеживать изменения в них, вам нужно использовать AFRAME.registercomponent и проверять element.object3D.position / вращение / масштабирование внутри функций тиков или токов. Подробнее здесь

...