public bool GetControllerButton(ControllerCode buttonCode, int gamePadIndex, ButtonStateType buttonState = ButtonStateType.Down) { string buttonName = GetGamePadControllerCodeName(buttonCode, gamePadIndex); if (ControllerMap.ContainsKey(buttonName)) { ControllerMappedInput mappedInput = ControllerMap[buttonName]; if (!mappedInput.IsAxis) { if (mappedInput.Key != KeyCode.None) { switch (buttonState) { case ButtonStateType.Down: return(Input.GetKeyDown(mappedInput.Key)); case ButtonStateType.Up: return(Input.GetKeyUp(mappedInput.Key)); case ButtonStateType.Constant: return(Input.GetKey(mappedInput.Key)); } } } } return(false); }
public float GetControllerAxis(ControllerCode axisCode, int gamePadIndex) { string axisName = GetGamePadControllerCodeName(axisCode, gamePadIndex); if (ControllerMap.ContainsKey(axisName)) { ControllerMappedInput mappedInput = ControllerMap[axisName]; if (mappedInput.IsAxis) { if (!string.IsNullOrEmpty(mappedInput.Axis)) { if (currentOS == OS.Mac) { if (axisCode == ControllerCode.LeftTriggerAxis) { float leftTriggerAxisValue = Input.GetAxis(mappedInput.Axis); if (LeftTriggerPressed) { leftTriggerAxisValue = MapMacTriggerAxisToPercent(leftTriggerAxisValue); } else { if (leftTriggerAxisValue != 0) { LeftTriggerPressed = true; leftTriggerAxisValue = MapMacTriggerAxisToPercent(leftTriggerAxisValue); } } return(leftTriggerAxisValue); } else if (axisCode == ControllerCode.RightTriggerAxis) { float rightTriggerAxisValue = Input.GetAxis(mappedInput.Axis); if (RightTriggerPressed) { rightTriggerAxisValue = MapMacTriggerAxisToPercent(rightTriggerAxisValue); } else { if (rightTriggerAxisValue != 0) { RightTriggerPressed = true; rightTriggerAxisValue = MapMacTriggerAxisToPercent(rightTriggerAxisValue); } } return(rightTriggerAxisValue); } else { return(Input.GetAxis(mappedInput.Axis)); } } else { return(Input.GetAxis(mappedInput.Axis)); } } } } return(0f); }