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); }