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