Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Responsive Design - Identifying Possible Control Modes for Instructions #28

Open
DougReeder opened this issue Feb 15, 2020 · 0 comments
Milestone

Comments

@DougReeder
Copy link

Controllers are not exposed by the gamepads module outside of VR or AR mode. This is a good anti-profiling feature. However that does make it tricky to identify what control modes are possible, and thus instruct the user, before the user enters VR or AR mode.

Example: In Elfland Glider (https://elfland-beta.surge.sh), on desktop, control is via the keyboard. On mobile, control is via tilting the device. In VR, control is via the head (if no positional controllers are available) or the controllers. Desktop and mobile can be distinguished when the application first launches, so appropriate instructions are displayed on the overlay. However, it is not readily possible to distinguish, using the WebXR API, whether positional controls (and how many) are available. So, the overlay must include instructions for both control using the head and control using controllers. (It is possible, and Elfland Glider implements, switching between head and controller controls as controllers come on- and off-line.)

Example: an exercise application might need to know if leg motion is trackable, to constrain what exercise regimes are offered.

Example: a sign language training application needs to know if hand tracking is available.

So, one of two things is needed:

  1. A requiredFeature / optionalFeature of the XRSessionMode for InputSources
  2. Best Practice of how to inform the user how to do things using the available InputSources.
@Manishearth Manishearth added this to the Future milestone Feb 24, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants