JoyInput GetPressedInput() { //JOYSTICK BUTTONS for (int joyK = (int)KeyCode.Joystick1Button0; joyK <= (int)KeyCode.Joystick4Button19; joyK++) { // check for all joystick buttons KeyCode kc = (KeyCode)joyK; if (Input.GetKey(kc)) { Debug.Log(kc + ": " + Input.GetKey(kc)); } if (Input.GetKey(kc) && !Input.GetKeyDown(KeyCode.Escape)) { return(new JoyInput(kc, E_JoystickAxis.NONE)); } } //JOYSTICK AXS //---------------------------------------------------------------- // we set the axis in the unity inputmanager and then use them here //---------------------------------------------------------------- //hack pro F510 ktery vraci na tabletech pro osy 4 a 0 stale 1 (a pro 5 a 11 -1 kdyz nejsou stisknute) bool f510_Hack = (Game.CachedJoystickName == "Generic X-Box pad") && (Input.GetAxis(GamepadAxis.GetAxis((E_JoystickAxis)5)) < 0 || Input.GetAxis(GamepadAxis.GetAxis((E_JoystickAxis)11)) < 0); int result = -1; for (int i = 0; i < (int)E_JoystickAxis.COUNT; i++) { if (f510_Hack) { //if(i == 4 || i == 5 || i == 10 || i == 11) if (i == 4 || i == 10) { continue; } } float trashHold = (i < 4) ? 0.5f : 0.8f; string axis = GamepadAxis.GetAxis((E_JoystickAxis)i); if (Input.GetAxis(axis) > trashHold && !Input.GetKeyDown(KeyCode.Escape)) { result = i; } } if (result != -1) { return(new JoyInput(KeyCode.None, (E_JoystickAxis)result)); } return(null); }
//---------------------------------------------- // interface //---------------------------------------------- //is button fopr this action currently pressed public bool ControlPressed(PlayerControlsGamepad.E_Input inpAction) { if ((int)inpAction >= GetActionCount()) { return(false); } JoyInput btn = m_InputK[(int)inpAction]; if (btn.joyAxis == E_JoystickAxis.NONE) { return(Input.GetKey(btn.key)); } else { return(Input.GetAxis(GamepadAxis.GetAxis(btn.joyAxis)) > 0.95f); } }
float GetGpadAxis(E_Input inp) { JoyInput inpButton = GamepadInputManager.Instance.GetActionButton(inp); string axisName = GamepadAxis.GetAxis(inpButton.joyAxis); if (axisName != "") { //invert up axis for looking if (inp == E_Input.Axis_ViewUp) { return(-Input.GetAxis(axisName)); } else { return(Input.GetAxis(axisName)); } } else { if (inp == E_Input.Axis_MoveRight) { return(Input.GetAxis("HorizontalMove")); } else if (inp == E_Input.Axis_MoveUp) { return(Input.GetAxis("VerticalMove")); } else if (inp == E_Input.Axis_ViewRight) { return(Input.GetAxis("HorizontalView")); } else if (inp == E_Input.Axis_ViewUp) { return(Input.GetAxis("VerticalView")); } } return(0); }
//must be called every frame void OnUpdate() { int numAxis = (int)E_JoystickAxis.COUNT; for (int i = 0; i < numAxis; i++) { float axisVal = Input.GetAxis(GamepadAxis.GetAxis((E_JoystickAxis)i)); if (m_WasAxisPressed[i] == false && axisVal > 0.65f) { m_WasAxisPressed[i] = true; m_AxisDown[i] = true; } else if (m_WasAxisPressed[i] == true && axisVal < 0.25f) { m_WasAxisPressed[i] = false; m_AxisUp[i] = true; } else { m_AxisDown[i] = false; m_AxisUp[i] = false; } } }