void Update() { SmoothTeleport(Time.deltaTime); bool teleportNewlyPressed = false; if (visible) { if (teleportAction.GetStateUp(teleportHand)) { TryTeleportPlayer(); } } if (!GameManager.isPaused && teleportationAllowed) { if (!StandardizedVRInput.ActionOccupied(teleportAction, teleportHand) && teleportAction.GetStateDown(teleportHand)) { teleportNewlyPressed = true; } } if (!visible && teleportNewlyPressed) { //Begin showing the pointer ShowPointer( ); } else if (visible) { if (!teleportNewlyPressed && !teleportAction.GetState(teleportHand)) { //Hide the pointer HidePointer(); } } if (visible) { UpdatePointer(); if (meshFading) { UpdateTeleportColors(); } } }
void CheckForJump(bool movementEnabled) { if (moveScript.isGrounded && movementEnabled) { if (jumpAction.GetStateDown(moveHand)) { Debug.LogError("jumped"); if (!StandardizedVRInput.ActionOccupied(jumpAction, moveHand)) { moveScript.Jump(); } } } }
// set move velocity to zero every frame for instant stop // when not moving void HandleMoveInput(bool movementEnabled) { currentMoveVector = Vector2.zero; if (!movementEnabled) { isRunning = false; return; } currentMoveVector = StandardizedVRInput.ActionOccupied(moveAction, moveHand) ? Vector2.zero : moveAction.GetAxis(moveHand); if (currentMoveVector != Vector2.zero) { if (currentMoveVector.sqrMagnitude > 1) { currentMoveVector.Normalize(); } if (runMode != RunMode.None) { bool runPossible = Vector2.Angle(currentMoveVector, new Vector2(0, 1)) <= runAngleThreshold; if (!runPossible) { // we're used to walking forward, lateral and backwards/up down movement feels wrong // so it's speed needs to be clamped to prevent motion sickness isRunning = false; } else { if (runMode == RunMode.Held) { isRunning = runAction.GetState(moveHand); } else { if (runAction.GetStateDown(moveHand)) { isRunning = true; } } } } currentMoveVector = currentMoveVector * maxSpeed * (isRunning ? runMultiplier : 1); } // return currentMoveVector; }
void CheckCrouched(float deltaTime) { if (!easyCrouch) { Player.instance.extraHeightOffset = 0; isCrouched = GetManualCrouching(); return; } if (!GameManager.isPaused && !StandardizedVRInput.ActionOccupied(crouchAction, moveHand) && !Player.instance.handsTogether) { if (crouchAction.GetStateDown(moveHand)) { isCrouched = !isCrouched; } } HandleEasyCrouch(deltaTime); }