Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
Fangh's avatar
Fangh
Explorer
6 years ago

Hand Tracking doesn't work if I remove the Unity Splash Screen

Hello everyone.
I have a project for Oculus Quest with Hand Tracking.

The Hand tracking does not work if I uncheck "Show Splash Screen" in my project settings (I have a Unity Plus License)


Does anyone have a fix ?

4 Replies

  • Oh boy
    I tried the hole day to figure out why my hand tracking app wasn't working anymore.
    With v15 everything works fine.
    Looks like the last update broke hand tracking for unity plus users.
  • tverona's avatar
    tverona
    Honored Guest
    This seems to be a timing issue, where the underlying native library isn't initialized quickly enough on startup and results in Unity hand tracking components not getting initialized in Start()/Awake(). It seems like the splash screen delays this long enough to mask the issue.

    What fixed it for me is to modify these 4 files under Assets/Oculus/VR/Scripts/Util: OVRMesh.cs, OVRMeshRenderer.cs, OVRSkeleton.cs, OVRSkeletonRenderer.cs. In the Update() methods for these files, remove the #if UNITY_EDITOR so that Initialize() is called on Android too.

    Also, to prevent excess GC, in OVRMesh.cs in Initialize() don't reallocate _mesh if it's already allocated. Same for OVRSkeletonRenderer.cs Initialize() - don't reallocate those 4 member variables if they've already been initialized.

    Hope this helps!
    • yiliu's avatar
      yiliu
      Honored Guest

      Thank you so much for sharing this fix. I've been banging my head against the table for days trying to figure this one out.