예제 #1
0
    private Vector2 getAnalog()
    {
        Vector2 move = Vector2.zero;

        move.x = CrossPlatformInputManager.GetAxis("Horizontal");
        move.y = CrossPlatformInputManager.GetAxis("Vertical");
        if (move.sqrMagnitude > 1)
        {
            move.Normalize();
        }

        if (KeyBindingScript.LeftController != null && KeyBindingScript.RightController != null)
        {
            IsWalking = !KeyBindingScript.RunPressedVR(); // TODO VR Button
        }
        else
        {
            IsWalking = true;
        }

        return(move);
    }
예제 #2
0
        private void GetInput(out float speed)
        {
            // Read input
            float horizontal = CrossPlatformInputManager.GetAxis("Horizontal");
            float vertical   = CrossPlatformInputManager.GetAxis("Vertical");

            bool waswalking = m_IsWalking;

#if !MOBILE_INPUT
            // On standalone builds, walk/run speed is modified by a key press.
            // keep track of whether or not the character is walking or running
            if (!UnityEngine.XR.XRDevice.isPresent)
            {
                m_IsWalking = !(Input.GetKey(KeyBindingScript.buttons["Run"]) || Input.GetKey(KeyBindingScript.controller["C_Run"]));
            }
            else
            {
                m_IsWalking = !KeyBindingScript.RunPressedVR();
            }
#endif
            // set the desired speed to be walking or running
            speed   = m_IsWalking ? m_WalkSpeed : m_RunSpeed;
            m_Input = new Vector2(horizontal, vertical);

            // normalize input if it exceeds 1 in combined length:
            if (m_Input.sqrMagnitude > 1)
            {
                m_Input.Normalize();
            }

            // handle speed change to give an fov kick
            // only if the player is going to a run, is running and the fovkick is to be used
            if (m_IsWalking != waswalking && m_UseFovKick && m_CharacterController.velocity.sqrMagnitude > 0)
            {
                StopAllCoroutines();
                StartCoroutine(!m_IsWalking ? m_FovKick.FOVKickUp() : m_FovKick.FOVKickDown());
            }
        }