Jump to content


Verified Members
  • Content Count

  • Joined

  • Last visited

Community Reputation

5 Neutral

About atonalfreerider

  • Rank

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. For those who would like to use the Unity Input Subsystem for controller input, we have found differences between the VIVE Wave XR Plugin 1.0.0 and 1.0.1: In 1.0.0: CommonUsages.primaryButton and CommonUsages.secondaryButton map to touchpad Center and the menu button respectively. In 1.0.1: CommonUsages.primaryButton and CommonUsages.secondaryButton map to touchpad Left and touchpad Up respectively. To get the "center" touchpad button in 1.0.1, you can get CommonUsages.primary2DAxis and look for values close to (0,0). CommonUsages.menuButton also still maps to the menu button. @Tony PH Lin @MariosBikos_HTC
  2. @JustinVive surprisingly, I only had to include wvr.cs, WVR_Android.cs, and WaveVR_PermissionManager.cs to get the permission manager prompt! I'll look into troubleshooting the floor orientation issue.
  3. Is it currently possible to connect the Focus to other devices (other than the controllers) via Bluetooth? We are looking into pairing the headset to a PC to link with an application that is running on the PC @Tony PH Lin
  4. Great job team on this update. It's working great on Unity 2020.1.4f1 and building and deploying successfully. A few questions / feedback here: 1 - I'm unclear about how permission prompts are supposed to work. Formerly we were using: https://hub.vive.com/storage/app/doc/en-us/WaveVR_PermissionManager.html#wavevr-permissionmanager As of 3.2, references such as pmInstance = WaveVR_PermissionManager.instance; are broken as there is no wvr library accessible at compile time. I suppose the library becomes available on deployment, but it's unclear how to make a compileable call to the library in our source. 2 - We run this block of code to ensure that the floor origin is set. It is otherwise not. Is this intentional? List<XRInputSubsystem> xrInputSubsystems = new List<XRInputSubsystem>(); SubsystemManager.GetInstances(xrInputSubsystems); foreach (XRInputSubsystem xrInputSubsystem in xrInputSubsystems) { xrInputSubsystem.TrySetTrackingOriginMode(TrackingOriginModeFlags.Floor); } 3 - The AndroidManifest appears in cache in C:\Users\<user>\AppData\Local\Unity\cache\packages\npm-registry.vive.com\com.htc.upm.wave.xrsdk@1.0.0\Runtime\Android\AndroidManifest.xml C:\Users\<user>\<project>\PackageCache\com.htc.upm.wave.xrsdk@1.0.0\Runtime\Android\AndroidManifest.xml Before building, we manually change these files to include essential information, like <meta-data android:name="com.htc.vr.content.NumDoFHmd" android:value="6DoF"/> <meta-data android:name="com.htc.vr.content.NumDoFController" android:value="3,6DoF"/> <meta-data android:name="com.htc.vr.content.NumController" android:value="1,2"/> Is this the right approach or is there an automated way to manage the manifest? Thank you! @Tony PH Lin @Cotta
  5. We have multiple customers that are more comfortable having a Vive Focus connect to their corporate network via a computer that they control. We identified a popular tool for reverse tethering Android to a Windows PC via USB: https://github.com/Genymobile/gnirehtet The tool works fine, however it requires a signature-level permission to work: android.permission.BIND_VPN_SERVICE We can't find a way to grant this permission to the service on the Focus. Normally there would be a signature permission popup on an Android phone that would look like the (attached) image below. I tried running some of the sample projects included in the WaveVR native distribution. The closest example I tried was the wvr_simple_deviceservice sample. I also looked at this documentation: https://hub.vive.com/storage/docs/en-us/NativePermissionManager.html but I'm not sure how to import the PermissionManager into the source code for the tool. Any guidance on prompting an allowing the user to accept this permission would be appreciated. Or any other suggestions on how to reverse tether the Focus to a PC. @Cotta @JustinVive
  6. @Tony PH Lin Circling back here because we have discovered the reason why we've been unable to run the latest Unity plugin 3.1.4: It turns out that there were mobile VR packages that we thought we had removed from ProjectSettings, but were still present. Checking ProjectSettings.asset we removed "daydream" and "Oculus" and the build succeeded and ran without any AndroidManifest.xml collisions. Everything works now. Also there is no need for us to modify the platform settings for the wvr plugins, as we indicated above. They are good as they are imported.
  7. @Tony PH Lin@Corvus any update on the AndroidManifest collision issue? Thank you
  8. @Corvus @Tony PH Lin as I explained above this is from a clean import. Deleting and re-importing the plugins folder has no effect. The gradle Android Manifest merger is failing specifically between wvr_client.aar for the attribute application@theme=@style/UnityThemeSelector and the Assets\WaveVR\Platform\AndroidWVR\AndroidManifest.xml <application android:icon="@drawable/app_icon" android:label="@string/app_name" android:theme="@style/Theme.WaveVR.Loading" android:resizeableActivity="false" tools:replace="android:theme"> <!--You can use your theme here.--> This is the error from gradle: Attribute application@theme value=(@style/UnityThemeSelector) from AndroidManifest.xml:4:16-57 is also present at [:wvr_client:] AndroidManifest.xml:15:9-50 value=(@style/Theme.WaveVR.Black). Suggestion: add 'tools:replace="android:theme"' to <application> element at AndroidManifest.xml:4:3-19:17 to override. Nothing has been changed since the clean import. Thank you in advance for your help @Cotta
  9. @Tony PH Lin there is still a collision between the AndroidManifest and wvr_client for @style/Theme.WaveVR.Black while Gradle is building. What is the best way to resolve this? CommandInvokationFailure: Gradle build failed. C:/Program Files/Unity/Hub/Editor/2019.2.4f1/Editor/Data/PlaybackEngines/AndroidPlayer/Tools\OpenJDK\Windows\bin\java.exe -classpath "C:\Program Files\Unity\Hub\Editor\2019.2.4f1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-5.1.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleDebug" stderr[ C:\Users\johnb\Desktop\PRIMITIVE\Temp\gradleOut\src\main\AndroidManifest.xml:4:16-57 Error: Attribute application@theme value=(@style/UnityThemeSelector) from AndroidManifest.xml:4:16-57 is also present at [:wvr_client:] AndroidManifest.xml:15:9-50 value=(@style/Theme.WaveVR.Black). Suggestion: add 'tools:replace="android:theme"' to <application> element at AndroidManifest.xml:4:3-19:17 to override. FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':processDebugManifest'. > Manifest merger failed : Attribute application@theme value=(@style/UnityThemeSelector) from AndroidManifest.xml:4:16-57 is also present at [:wvr_client:] AndroidManifest.xml:15:9-50 value=(@style/Theme.WaveVR.Black). Suggestion: add 'tools:replace="android:theme"' to <application> element at AndroidManifest.xml:4:3-19:17 to override. * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 6s @Cotta
  10. @Tony PH Lin @JustinViveSame issue as @juanyvos but it's not related to a clean import of the unity package. After doing a clean import of 3.1.1, by default the following aar libraries are disabled for Android: wvr_client.aar wvr_ime_client.aar wvr_permission_client.aar wvr_resindicator.aar wvr_unity_plugin_2017.aar This was not the case in 3.0.2, they were all enabled for Android. As a result, when attempting to build and run on the Focus, logcat gives the following errors: AndroidJavaException: java.lang.ClassNotFoundException: Didn't find class "com/htc/vr/unity/WVRUnityVRActivity$OEMConfigCallback" Unable to find wvrunity DllNotFoundException: wvrunity If the aar libraries are enabled, it fails to merge the AndroidManifest as @juanyvos found. This happens in Unity 2018 LTS as well as Unity 2019 Are the aar libraries supposed to not be included? How does wvrunity get deployed to the apk? Thank you
  11. In case it hasn't been addressed here before, the black screen that appears on first load that is only dismissable by pausing the application (by removing the headset and putting it back on), can be automatically cleared by forcing the application to pause and unpause on first load. Doing a forced pause and unpause requries a modification to the WaveSDK code in WaveVR_Render in OnApplicationPause(): void OnApplicationPause(bool pauseStatus) { Pause(pauseStatus); } public void Pause(bool pauseStatus) { Log.d(LOG_TAG, "Pause(" + pauseStatus + ")"); if (pauseStatus) { WaveVR_Utils.IssueEngineEvent(WaveVR_Utils.EngineEventID.UNITY_APPLICATION_PAUSE); if (synchronizer != null) synchronizer.sync(); lefteye.getCamera().targetTexture = null; righteye.getCamera().targetTexture = null; textureManager.ReleaseTexturePools(); } else { WaveVR_Utils.IssueEngineEvent(WaveVR_Utils.EngineEventID.UNITY_APPLICATION_RESUME); } setLoadingCanvas(true); enableRenderLoop(!pauseStatus); } Pause can then be called externally, ideally from a coroutine or a late update with a small delay to allow for the WaveSDK assets to load. The pause and unpause in the renderloop is inperceptible to the user. This is a hack and will hopefully be addressed in a future release.
  • Create New...