Jump to content

StefanPezzei

Verified Members
  • Posts

    7
  • Joined

  • Last visited

Posts posted by StefanPezzei

  1. @Corvus to give you more information.

    same problem persists with:

    • SRanipal 1.3.0.9
    • SRanipal Framework Version 2

    For the first 70-200 frames (changes each time when registering the callback function) the callback function works fine and as intended. After the first few hundred frames, the NullReferenceException is thrown each following frame. Unregistering and reregistering the callback function repeats the described behavior. 

    best,
    Stefan

  2. Sure. Just a simple example:

    public class TestViveProEye
    {
        private Vector3 leftOrigin;
    
        public void StartUpdateData()
        {
            SRanipal_Eye.WrapperRegisterEyeDataCallback(Marshal.GetFunctionPointerForDelegate((SRanipal_Eye.CallbackBasic) UpdateData));
        }
    
        public void StopUpdateData()
        {
            SRanipal_Eye.WrapperUnRegisterEyeDataCallback(Marshal.GetFunctionPointerForDelegate((SRanipal_Eye.CallbackBasic) UpdateData));
        }
    
        private void UpdateData(ref EyeData eyeData)
        {
            //Works as expected
            Debug.Log(eyeData.verbose_data.left.gaze_origin_mm);
    
            //Throws NullReferenceException: Object reference not set to an instance of an object
            //UnityEngine.UnhandledExceptionHandler:<RegisterUECatcher>m__0(Object, UnhandledExceptionEventArgs)
            leftOrigin = eyeData.verbose_data.left.gaze_origin_mm;
            Debug.Log(leftOrigin);
        }
    }


    It is odd. Storing the eye tracking values locally or passing it to other functions causes a NullReferenceException. However, printing the value to the console works just fine. Maybe I'm missing something on the scope of the callback function(UpdateData), but I'm not sure. 

×
×
  • Create New...