Forum Discussion
mm_develop
9 months agoHonored Guest
Virtual Hands and Hand Tracking Missing in Unity Play Mode via Quest Link
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,
1 Reply
Replies have been turned off for this discussion
- Dae_KExplorer
Hands and controllers tracking over link during play mode do not work for existing projects as well.
Unity version: 2022.3.22f1
All in One SDK: 71.0.0
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device
Other Meta Support
Related Content
- 5 years ago
- 2 years ago