donmccurdy / aframe-proxy-controls

A-Frame component to proxy keyboard/gamepad controls between devices over WebRTC.
MIT License
47 stars 12 forks source link

Remote Shows connected, but events not been sent to client #11

Closed RupinC closed 4 years ago

RupinC commented 5 years ago

I created a sample application here

http://cgaframe.herokuapp.com/class3

There is WASD movement available when my browser tab is on the above page, but it does not move the camera when I enter my pairing code here and press the same keys.

https://proxy-controls.donmccurdy.com/#/connect

The pairing code is cgaframe-1238 for your to try. I am making an error, but cant seem to understand what it is.

Debug is on, here is what it says in the console

peer:connection() peer:connect("%s") peer:upgrade("%s")

rupin commented 5 years ago

The functionality also breaks on the Chrome Browser on Android Phone, in VR mode.

donmccurdy commented 5 years ago

@RupinC @rupin what devices and browsers are you using (for both the client and the host)? Is it only broken in VR mode? I think new versions of A-Frame will require you to put movement controls on the rig around the camera:

<a-entity gamepad-controls proxy-controls wasd-controls ...>
  <a-entity camera look-controls position="0 1.6 0">
</a-entity>

... but unfortunately that will also cause movement to disregard the direction you're looking, per https://github.com/aframevr/aframe/issues/3351.

rupin commented 5 years ago

Both the Laptop and the Phone have the update chrome browser.

Yes, the functionality is broken in VR mode only.

will try your recommendation. I could not get a sense of the problem from the referenced issue, lack of experience working with A-frame, maybe.

donmccurdy commented 5 years ago

In more recent versions of A-Frame camera needs to have a "rig" element around it – moving the camera element directly will not work, because in VR mode the WebVR polyfill takes control of that. Unfortunately my docs and this code are pretty out of date. The example I show above should work, but movement will become independent of the direction you're looking, which is unfortunate.

There's a newer controls system in https://github.com/donmccurdy/aframe-extras, but it doesn't have any "remote proxy" functionality yet.