Ejemplo n.º 1
0
        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);
        }