Skip to content
This repository has been archived by the owner on Aug 11, 2024. It is now read-only.

Controller management required for situations where multiple data providers can exist on a single platform #247

Closed
SimonDarksideJ opened this issue Jul 17, 2019 · 3 comments · Fixed by #416
Assignees
Labels
Bug Something isn't working

Comments

@SimonDarksideJ
Copy link
Contributor

XRTK - Mixed Reality Toolkit Bug Report

Describe the bug

With Windows Mixed Reality, OpenVR was for standalone and WMR was for UWP, there was a clear separation

Now with the addition of Oculus, we have situations where multiple data providers can compete for the controllers to manage, resulting in multiple data providers capturing and rendering the detected controllers.

Seems we need a higher level controller management framework to ensure that once a controller is activated and registered, it is ignored by any other provider.

To Reproduce

  1. Enable Joystick / OpenVR & Oculus on Windows Standalone (default behaviour)
  2. Run the project with Oculus VR as the primary VR target
  3. Observe that multiple controllers exist in the scene, some tracked and some not

Expected behavior

Once a controller is active, it should be ignored by other data providers

Actual behavior

Free for all, everyone registers and renders

Your Setup (please complete the following information)

  • Unity Version 2019.1.10
  • XRTK Version 0.1.13

Target Platform (please complete the following information)

  • Windows Standalone
@SimonDarksideJ SimonDarksideJ added the Bug Something isn't working label Jul 17, 2019
@SimonDarksideJ SimonDarksideJ self-assigned this Jul 17, 2019
@SimonDarksideJ
Copy link
Contributor Author

Key Discussion point here, is what should be used as the central management point between all data providers?

  • Is it something new
  • or attached to the XRTK Entry point (Dictionary on the XRTK entry point for example)
  • Or attached to the input system (A function call to validate if an input source exists for a given controller)

SimonDarksideJ added a commit that referenced this issue Jul 20, 2019
* Controller Type added to IMixedRealityController
* Added new TryGet method to InputSystem (and interface) to Query detected by Type and Hand
* All current controller constructors updated to include type
* All current controller instantiation updated to include type
* Updated Logic for OpenVR to check the input system for detected controllers
* Updated Logic for Oculus to check the input system for detected controllers
* WMR / Lumin unaffected, as they can only ever have one set of detected controllers
@StephenHodgson
Copy link
Contributor

Not really a bug. It's a matter of implementation details I suppose.

WMR and OpenVR seem to work just fine.

@StephenHodgson
Copy link
Contributor

Isn't this just a duplicate of #240?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants