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

Improve Supported platform support to handle multiple SDK's on a single OS #377

Closed
SimonDarksideJ opened this issue Oct 2, 2019 · 0 comments · Fixed by #416
Closed

Improve Supported platform support to handle multiple SDK's on a single OS #377

SimonDarksideJ opened this issue Oct 2, 2019 · 0 comments · Fixed by #416
Assignees
Labels
Feature Request FR Accepted Feature Request accepted, ready for development

Comments

@SimonDarksideJ
Copy link
Contributor

XRTK - Mixed Reality Toolkit Feature Request

Is your feature request related to a problem? Please describe

Currently, Unity (and XRTK) only support an Operating system-level platform selection, unless a specific exception is made (e.g. Lumin / Xbox). However, more and more vendors rather than integrating directly with Unity are simply making platforms available under existing OS models (e.g. Oculus on Windows and Android)

This is creating complications when configuring Services / SDK's to operate or customising options within the XRTK.

How would you classify your suggestion

  • Usability / Configuration
  • Architecture / Services

Describe the solution you'd like

The solution needs to be able to provide and support a richer set of Platform definitions covering all the options for running solutions, e.g.

  • Existing Options (Windows / Android / UWP / Lumin / etc)
  • Windows OpenVR
  • Android OpenVR
  • UWP OpenVR
  • Windows Oculus
  • Android Oculus Quest
  • Android Oculus Go
  • etc...
    (Full list needs to be determined and evaluated, given more mobile Style platforms are choosing Android)

A possible solution has been described in the MRTK project here:
microsoft/MixedRealityToolkit-Unity#4235

Ultimately, each platform variation needs to be able to also define whether is it active / enabled with an API check (which may also require platform variations)
e.g.

Example only for reference

public class AndroidPlatformSupport : IPlatformSupport
{
    public virtual bool Check()
   {
        return Application.platform == RuntimePlatform.Android;
   }
}

public class OculusGoPlatformSupport : AndroidPlatformSupport
{
    public override bool Check()
    {
        return base.Check() && OVRPlugin.GetSystemHeadsetType() == SystemHeadset.Oculus_Go;
    }
}

This will lead to an improved method of validating and only loading Providers and Services for specific platforms

Describe alternatives you've considered

Current practices are insufficient

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Feature Request FR Accepted Feature Request accepted, ready for development
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants