ViveSoftware / ViveInputUtility-Unity

A toolkit that helps developing/prototyping VR apps.
http://u3d.as/uF7
Other
358 stars 81 forks source link

Switch targets between Vive and Oculus using scripts (not GUI) #215

Open bearaccount opened 3 years ago

bearaccount commented 3 years ago

Goal is to switch the headset target programmatically (so it's compatible with build pipeline). Manual way is of course switch headset target in VIU (Edit -> Preferences -> VIU Settings).

Method we have tried:

  1. Try to load a VIUSettings file. Steps:

    • In VIU Settings -> Choose Wave
    • Copy newly created Assets/VIUSettings/Resources/VIUSettings.asset and rename "VIUSettingsWave.asset".
    • In VIU Settings -> Choose Occulus Use Load: "HTC.UnityPlugin.Vive.VIUSettings.LoadFromResource(path);" where path was "Assets/VIUSettings/Resources/VIUSettingsWave.asset" Open back VIU Settings (still set to Oculus) and did a build for Wave (broke).
    • Changes in file: m_activateOculusVRModule: 1 m_activateUnityNativeVRModule: 1 m_activateUnityXRModule: 1 m_activateWaveVRModule: 0
  2. Tried to set symbols directly using PlayerSettings.SetScriptingDefineSymbolsForGroup Swapping symbols in an Editor script which throws Unity Editor into a compile loop: << OCULUSVR_ANDROID_SUPPORT

    VIU_WAVEVR_SUPPORT

Results is no change in target.

We need this for the build pipeline to build for two different targets.

dariol commented 3 years ago

Try using:

EditorUserBuildSettings.SwitchActiveBuildTargetAsync(group, target);

Goldfinchworks commented 2 years ago

@bearaccount Hi, did you manage to switch the target headset programmatically?