unity-game-engineoculusquest

Enabling Oculus Quest's Hand Tracking in Unity XR Interaction Toolkit?


XRCameraRig is supposed to replace OVRCameraRig but OVRCameraRig is the only place where you can set hand tracking support ("Hands only" or "Controllers and hands"). That option is not available on XRRig so including hands makes the app to be recognized by Oculus Quest as a "hands only" app.


Solution

  • Finally I solved it. Don't use the new XR Management System.

    Remove the following packages:

    Install the following packages:

    Change the AndroidManifest:

    Make sure this line is missing:

    <meta-dataandroid:value="false" android:name="com.oculus.vr.focusaware" >
    </meta-data>
    

    Make sure hand tracking is not required:

    <uses-feature android:name="oculus.software.handtracking" android:required="false">
    

    Make sure intent-filter category is LAUNCHER, not INFO:

    <intent-filter>
    ...
    <category android:name="android.intent.category.LAUNCHER"></category>
    </intent-filter>
    

    Make sure you only have these meta-data elements:

    <meta-data
    android:name="unityplayer.SkipPermissionsDialog"
    android:value="false">
    </meta-data>
    <meta-data
    android:name="com.samsung.android.vr.application.mode"
    android:value="vr_only">
    </meta-data>
    

    I hope we could change hand tracking and controllers while using the new XR Management System in the future