Example #1
0
 private void OnUserPositionGuideReceived(object sender, UserPositionGuideEventArgs e)
 {
     lock (_userPositionGuideLock)
     {
         _latestUserPositionGuideData = new UserPositionGuideData(e);
     }
 }
 internal UserPositionGuideData(UserPositionGuideEventArgs userPositionGuideData)
 {
     LeftEye       = userPositionGuideData.LeftEye.UserPosition.ToVector3();
     RightEye      = userPositionGuideData.RightEye.UserPosition.ToVector3();
     LeftEyeValid  = userPositionGuideData.LeftEye.Validity == Validity.Valid;
     RightEyeValid = userPositionGuideData.RightEye.Validity == Validity.Valid;
 }
 // This method will be called on a thread belonging to the SDK, and can not safely change values
 // that will be read from the main thread.
 private void EnqueueUserPositionGuide(object sender, UserPositionGuideEventArgs e)
 {
     lock (_queue)
     {
         _queue.Enqueue(e);
     }
 }
 // This method will be called on the main Unity thread
 private void HandleUserPositionGuide(UserPositionGuideEventArgs e)
 {
     // Do something with user position guide
     // Debug.Log(string.Format(
     //     "Got user position guide with validity: {0} with normalized coordinates ({1}, {2}, {3}).",
     //     e.LeftEye.Validity,
     //     e.LeftEye.UserPosition.X,
     //     e.LeftEye.UserPosition.Y,
     //     e.LeftEye.UserPosition.Z));
 }