cancel
Showing results for 
Search instead for 
Did you mean: 

Meta Quest Pro Eye Tracking Enabling Issue

Aaronzeller
Honored Guest

I am working on an application that retrieves the eye position of a user by using collision of a surface with the OVRGazeRay. I was able to make it work and could retrieve the data  points over the meta link to my computer. At some point I updated my Quest Pro and from then on it stopped working. The Movement SDK tells me that the eye tracking is enabled and working

Aaronzeller_0-1720860429717.png

In addition to that the Meta XR project setup tool also tells me that there are no issues in my project.

Aaronzeller_1-1720860573277.png

Aaronzeller_2-1720860578894.png

I have enabled eye tracking everywhere it needs to be and I did first send a build of the project to my quest to be able to enable eye tracking for the application in the meta quest pro and have verified that from then on it is enabled in the settings when using the meta link. 

Aaronzeller_5-1720861171338.png

Aaronzeller_6-1720861198703.png

 

 

In addition to the eye tracking using FixedUpdate (I doubled the frequency of the update) I also have an additional C# script taking controls from the controllers and interacting with a TextMeshProUGUI which is not used for collision detection (the two are hence separate). Everything seems to work just fine but somehow since the update I cannot retrieve the data anymore. Hence I asked the API directly if the eye tracking is enabled using (OVRPlugin.eyeTrackingEnabled) and this tells me that it is not enabled.

Aaronzeller_3-1720860856616.png

This results from the following code

if (OVRManager.isHmdPresent)
{
    OVRPlugin.SystemHeadset headset = OVRPlugin.GetSystemHeadsetType();
    UnityEngine.Debug.Log("Headset type: " + headset);
 
    bool eyeTrackingSupported = OVRPlugin.eyeTrackingSupported;
    bool eyeTrackingEnabled = OVRPlugin.eyeTrackingEnabled;
 
    UnityEngine.Debug.Log("Eye Tracking Supported: " + eyeTrackingSupported);
    UnityEngine.Debug.Log("Eye Tracking Enabled: " + eyeTrackingEnabled);
 
    if (eyeTrackingSupported && eyeTrackingEnabled)
    {
        UnityEngine.Debug.Log("Eye tracking is supported and enabled.");
    }
    else if(eyeTrackingSupported)
    {
        UnityEngine.Debug.LogWarning("Eye tracking is not enabled.");
    }
    else if (eyeTrackingEnabled)
    {
        UnityEngine.Debug.LogWarning("Eye tracking is not supported");
    }
    else
    {
        UnityEngine.Debug.LogWarning("Eye tracking is not supported and not enabled.");
    }
}

Things I have already checked multiple times:

- Developer Mode is enabled on the Meta App on my phone for the Meta Quest Pro

- I did factory reset the meta quest pro multiple times

- I am using 2022.3.35f1 LTS Unity which is compatible last time I checked with the movement sdk and the meta sdk.

- I am using up-to-date versions on all my packages

Aaronzeller_4-1720861047701.png

- Before the update I was able to retrieve the eye tracking data and I have verified that it matches the exact eye pattern. I also know that no collision is occuring as the eye gaze ray would change from white to red were it to collide with something.

I have been trying to figure this out for weeks now and I really do not know what the problem is being caused by. I hope someone can help me. Thanks in advance.

 

 

3 REPLIES 3

Aaronzeller
Honored Guest

Update: I made a minimum working example to narrow down the bug. I have removed all scripts and am only checking the status of OVRPlugin.eyeTrackingEnabled which is still false. Hence it is not a conflict of my scripts. I am only using the InteractionRigOVR.

adityaspt
Honored Guest

Hi @Aaronzeller 

Did you find why this was happening?
I am seeing this issue too where the property OVRPlugin.eyeTrackingEnabled is always false.
I have eye tracking working in my project, I am able to send out debug rays out of both eyes and display small sphere at the collision point.
But I wanted to use this OVRPlugin.eyeTrackingEnabled property as a check before using my code. It always gives back a false value. So I stopped using it.

May I ask if you have solved the problem? I have the same issue as you. It seems that there is a problem with eye movement configuration in Unity