void LateUpdate()
        {
            // This happens after all Updates so we know nothing set the position this frame
            if (positionSetsThisFrame == 0)
            {
                // No geometry intersections, so gazing into space. Make the cursor face directly at the camera
                Quaternion newRot = pointer.rotation;
                newRot.SetLookRotation(transform.forward, (lastPosition - pointer.position).normalized);
                if (startTime == 0)
                {
                    pointer.rotation = newRot;
                }

                pointer.localPosition = pointerStartPos;
                currentScale          = pointerStartPos.z * depthScaleMultiplier;
                pointer.localScale    = new Vector3(currentScale, currentScale, currentScale);
                //pointer.gameObject.SetActive(false);
                //lineRender.SetPosition(1, new Vector3(0, 0, 100));
            }
            // Keep track of cursor movement direction
            //_positionDelta = pointer.position - lastPosition;
            lastPosition = pointer.position;

            positionSetsThisFrame = 0;

            transform.localEulerAngles = pointerResetPos - IVRInputHandler.GetRotation();
        }
 private IEnumerator Resume()
 {
     IVRInputHandler.UpdateModule();
     while (IVRInputHandler.GetRotation() == Vector3.zero)
     {
         yield return(null);
     }
     Reset();
 }
 public override void Reset()
 {
     IVRInputHandler.UpdateModule();
     pointerResetPos = new Vector3(0, IVRInputHandler.GetRotation().y, 0);
 }