cancel
Showing results for 
Search instead for 
Did you mean: 

Virtual Hands and Hand Tracking Missing in Unity Play Mode via Quest Link

mm_develop
Honored Guest
Hi,
 
I’m experiencing an issue where hand tracking does not work through Quest Link in Play Mode within the Unity Editor — virtual hands do not appear. My setup includes Unity [6000.0.33f1], Meta XR All-in-One SDK [74.0.1], OpenXR Plugin [1.14.2], and Quest 2 (system version [v74.1020]). Hand tracking works when built as an APK on the Quest 2 but fails via Quest Link, despite being enabled in the headset settings.
 
The Unity console shows warnings like `XR_ERROR_HANDLE_INVALID` from `xrGetHandMeshFB` and `xrGetSkeleton2` (full list below), suggesting Quest Link isn’t passing hand tracking data correctly. 
 
```
Local Dimming feature is not supported
UnityEngine.Debug:LogWarning (object)
OVRManager:InitOVRManager () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRManager.cs:2386)
OVRManager:Awake () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRManager.cs:2508)
 
[OVRPlugin] [XRCMD][failure] [XR_ERROR_HANDLE_INVALID]: xrGetHandMeshFB(handTracker, &xrMesh), arvr\projects\integrations\OVRPlugin\Src\Util\CompositorOpenXR.cpp:9871 (arvr\projects\integrations\OVRPlugin\Src\Util/CompositorOpenXR.h:342)
UnityEngine.Debug:LogWarning (object)
OVRManager:OVRPluginLogCallback (OVRPlugin/LogLevel,intptr,int) (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRManager.cs:2156)
OVRPlugin:GetMesh (OVRPlugin/MeshType,OVRPlugin/Mesh&) (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRPlugin.cs:9566)
OVRMesh:Initialize (OVRMesh/MeshType) (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/Util/OVRMesh.cs:140)
OVRMesh:Awake () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/Util/OVRMesh.cs:102)
 
Your project uses a scriptable render pipeline. You can use Camera.stereoTargetEye only with the built-in renderer.
UnityEngine.Camera:set_stereoTargetEye (UnityEngine.StereoTargetEyeMask)
OVRCameraRig:EnsureGameObjectIntegrity () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRCameraRig.cs:609)
OVRCameraRig:Awake () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRCameraRig.cs:196)
 
Your project uses a scriptable render pipeline. You can use Camera.stereoTargetEye only with the built-in renderer.
UnityEngine.Camera:set_stereoTargetEye (UnityEngine.StereoTargetEyeMask)
OVRCameraRig:EnsureGameObjectIntegrity () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRCameraRig.cs:610)
OVRCameraRig:Awake () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRCameraRig.cs:196)
 
Your project uses a scriptable render pipeline. You can use Camera.stereoTargetEye only with the built-in renderer.
UnityEngine.Camera:set_stereoTargetEye (UnityEngine.StereoTargetEyeMask)
OVRCameraRig:EnsureGameObjectIntegrity () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRCameraRig.cs:611)
OVRCameraRig:Awake () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRCameraRig.cs:196)
 
[OVRPlugin] [XRCMD][failure] [XR_ERROR_HANDLE_INVALID]: xrGetHandMeshFB(handTracker, &xrMesh), arvr\projects\integrations\OVRPlugin\Src\Util\CompositorOpenXR.cpp:9360 (arvr\projects\integrations\OVRPlugin\Src\Util/CompositorOpenXR.h:342)
UnityEngine.Debug:LogWarning (object)
OVRManager:OVRPluginLogCallback (OVRPlugin/LogLevel,intptr,int) (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRManager.cs:2156)
OVRPlugin:GetSkeleton2 (OVRPlugin/SkeletonType,OVRPlugin/Skeleton2&) (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRPlugin.cs:9118)
OVRSkeleton:Initialize () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/Util/OVRSkeleton.cs:595)
OVRSkeleton:Start () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/Util/OVRSkeleton.cs:563)
 
[OVRPlugin] [XRCMD][failure] [XR_ERROR_HANDLE_INVALID]: xrGetHandMeshFB(handTracker, &xrMesh), arvr\projects\integrations\OVRPlugin\Src\Util\CompositorOpenXR.cpp:9360 (arvr\projects\integrations\OVRPlugin\Src\Util/CompositorOpenXR.h:342)
UnityEngine.Debug:LogWarning (object)
OVRManager:OVRPluginLogCallback (OVRPlugin/LogLevel,intptr,int) (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRManager.cs:2156)
OVRPlugin:GetSkeleton2 (OVRPlugin/SkeletonType,OVRPlugin/Skeleton2&) (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRPlugin.cs:9118)
OVRSkeleton:Initialize () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/Util/OVRSkeleton.cs:595)
OVRSkeleton:UpdateSkeleton () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/Util/OVRSkeleton.cs:857)
OVRSkeleton:Update () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/Util/OVRSkeleton.cs:850)
 
[OVRPlugin] [XRCMD][failure] [XR_ERROR_ACTIONSET_NOT_ATTACHED]: xrGetDeviceSampleRateFB(m_xrSession, &hapticActionInfo, &deviceSampleRate), arvr\projects\integrations\OVRPlugin\Src\Util\CompositorOpenXR.cpp:14563 (arvr\projects\integrations\OVRPlugin\Src\Util/CompositorOpenXR.h:342)
UnityEngine.Debug:LogWarning (object)
OVRManager:OVRPluginLogCallback (OVRPlugin/LogLevel,intptr,int) (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRManager.cs:2156)
OVRPlugin:GetControllerHapticsDesc (uint) (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRPlugin.cs:5263)
OVRHaptics/Config:Load () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRHaptics.cs:76)
OVRHaptics/Config:.cctor () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRHaptics.cs:71)
OVRHaptics:.cctor () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRHaptics.cs:42)
OVRManager:LateUpdate () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRManager.cs:3398)
 
[OVRPlugin] [XRCMD][failure] [XR_ERROR_ACTIONSET_NOT_ATTACHED]: xrGetDeviceSampleRateFB(m_xrSession, &hapticActionInfo, &deviceSampleRate), arvr\projects\integrations\OVRPlugin\Src\Util\CompositorOpenXR.cpp:14563 (arvr\projects\integrations\OVRPlugin\Src\Util/CompositorOpenXR.h:342)
UnityEngine.Debug:LogWarning (object)
OVRManager:OVRPluginLogCallback (OVRPlugin/LogLevel,intptr,int) (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRManager.cs:2156)
OVRPlugin:GetControllerHapticsDesc (uint) (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRPlugin.cs:5263)
OVRHaptics/Config:Load () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRHaptics.cs:76)
OVRHaptics:.cctor () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRHaptics.cs:42)
OVRManager:LateUpdate () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRManager.cs:3398)
 
[OVRPlugin] [XRCMD][failure] [XR_ERROR_ACTIONSET_NOT_ATTACHED]: xrGetDeviceSampleRateFB(m_xrSession, &hapticActionInfo, &deviceSampleRate), arvr\projects\integrations\OVRPlugin\Src\Util\CompositorOpenXR.cpp:14563 (arvr\projects\integrations\OVRPlugin\Src\Util/CompositorOpenXR.h:342)
UnityEngine.Debug:LogWarning (object)
OVRManager:OVRPluginLogCallback (OVRPlugin/LogLevel,intptr,int) (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRManager.cs:2156)
OVRPlugin:GetControllerHapticsDesc (uint) (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRPlugin.cs:5263)
OVRHaptics/Config:Load () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRHaptics.cs:76)
OVRHaptics:Process () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRHaptics.cs:389)
OVRManager:LateUpdate () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRManager.cs:3398)
```
 
Can you confirm if Quest Link fully supports hand tracking in this scenario? Are there specific Oculus app or firmware settings (e.g., experimental features) required to enable it?
 
Thank you,
0 REPLIES 0