public void OnButton(GamePad.Button button, GamePad.Index index, Action handler) { if (!_handlers.ContainsKey(button)) { _handlers.Add(button, new List <Action>()); } _handlers[button].Add(handler); }
public GamepadMapping(int player) { GamePadIndex = (GamePad.Index)Enum.Parse(typeof(GamePad.Index), PlayerPrefs.GetString("p" + player + "GamePadIndex")); GamePadHorizontalAxis = (GamePad.Axis)Enum.Parse(typeof(GamePad.Axis), PlayerPrefs.GetString("p" + player + "GamePadHorizontalAxis")); GamePadHorizontalAxisDirection = (InputConfigurator.AxisDirection)Enum.Parse(typeof(InputConfigurator.AxisDirection), PlayerPrefs.GetString("p" + player + "GamePadHorizontalAxisDirection")); GamePadVerticalAxis = (GamePad.Axis)Enum.Parse(typeof(GamePad.Axis), PlayerPrefs.GetString("p" + player + "GamePadVerticalAxis")); GamePadVerticalAxisDirection = (InputConfigurator.AxisDirection)Enum.Parse(typeof(InputConfigurator.AxisDirection), PlayerPrefs.GetString("p" + player + "GamePadVerticalAxisDirection")); GamePadRocketUp = (GamePad.Button)Enum.Parse(typeof(GamePad.Button), PlayerPrefs.GetString("p" + player + "GamePadRocketUp")); GamePadRocketDown = (GamePad.Button)Enum.Parse(typeof(GamePad.Button), PlayerPrefs.GetString("p" + player + "GamePadRocketDown")); GamePadRocketLeft = (GamePad.Button)Enum.Parse(typeof(GamePad.Button), PlayerPrefs.GetString("p" + player + "GamePadRocketLeft")); GamePadRocketRight = (GamePad.Button)Enum.Parse(typeof(GamePad.Button), PlayerPrefs.GetString("p" + player + "GamePadRocketRight")); }
public KeyCode VirtualButtonToKeyCode(GamePad.Button virutalButton) { switch (virutalButton) { case GamePad.Button.A: return(KeyCode.Joystick1Button1); case GamePad.Button.B: return(KeyCode.Joystick1Button2); case GamePad.Button.X: return(KeyCode.Joystick1Button0); case GamePad.Button.Y: return(KeyCode.Joystick1Button3); case GamePad.Button.L1: return(KeyCode.Joystick1Button4); case GamePad.Button.L2: return(KeyCode.Joystick1Button6); case GamePad.Button.L3: return(KeyCode.Joystick1Button10); case GamePad.Button.R1: return(KeyCode.Joystick1Button5); case GamePad.Button.R2: return(KeyCode.Joystick1Button7); case GamePad.Button.R3: return(KeyCode.Joystick1Button11); default: throw new InvalidVirtualButton(); } }
public KeyCode VirtualButtonToKeyCode(GamePad.Button virtualButton) { switch (virtualButton) { case GamePad.Button.A: return(KeyCode.H); case GamePad.Button.B: return(KeyCode.J); case GamePad.Button.X: return(KeyCode.K); case GamePad.Button.Y: return(KeyCode.L); case GamePad.Button.L1: return(KeyCode.T); case GamePad.Button.L2: return(KeyCode.Y); case GamePad.Button.L3: return(KeyCode.U); case GamePad.Button.R1: return(KeyCode.I); case GamePad.Button.R2: return(KeyCode.O); case GamePad.Button.R3: return(KeyCode.P); default: throw new InvalidVirtualButton(); } }
public bool GetButtonState(GamePad.Button button) { switch (button) { case GamePad.Button.A: return(A); case GamePad.Button.B: return(B); case GamePad.Button.Y: return(X); case GamePad.Button.X: return(Y); case GamePad.Button.RightShoulder: return(RightShoulder); case GamePad.Button.LeftShoulder: return(LeftShoulder); case GamePad.Button.RightStick: return(RightStick); case GamePad.Button.LeftStick: return(LeftStick); case GamePad.Button.Back: return(Back); case GamePad.Button.Start: return(Start); default: return(false); } }
public static bool GetButtonState(GamePad.Button virtualButton) { KeyCode keycode = GetKeyCodeConverter().VirtualButtonToKeyCode(virtualButton); return(Input.GetKey(keycode)); }
/// <summary> /// ボタンが離された瞬間 /// </summary> /// <param name="index">プレイヤー番号</param> /// <param name="button">ボタン</param> private bool Pull_Button(GamePad.Index index, GamePad.Button button) { return(GamePad.GetButtonUp(index, button)); }
/// <summary> /// ボタンが押されている間 /// </summary> /// <param name="index">プレイヤー番号</param> /// <param name="button">ボタン</param> private bool Hold_Button(GamePad.Index index, GamePad.Button button) { return(GamePad.GetButton(index, button)); }
/// <summary> /// ボタンが押された瞬間 /// </summary> /// <param name="index">プレイヤー番号</param> /// <param name="button">ボタン</param> private bool Push_Button(GamePad.Index index, GamePad.Button button) { return(GamePad.GetButtonDown(index, button)); }
private void UpdateGame (GamepadState state) { // No action if not your turn if (Game.instance.currentPlayer.canAction == false) { return; } // Do you press a button ? if(isTriggered == false) { /****** Actions ******/ /* Button A */ if (GamePad.GetButtonDown(GamePad.Button.A, Game.instance.currentPlayer.controllerIndex) == true && Game.instance.currentPlayer.GetCountMinions(MinionColor.GREEN) > 0) { buttonTriggered = GamePad.Button.A; isTriggered = true; _isKeyStroke = false; currentMode = Mode.Action; return; } else if (Input.GetButton("Button_A") == true && Game.instance.currentPlayer.GetCountMinions(MinionColor.GREEN) > 0) { buttonTriggered = GamePad.Button.A; isTriggered = true; _isKeyStroke = true; currentMode = Mode.Action; return; } /* Button B */ if (GamePad.GetButtonDown(GamePad.Button.B, Game.instance.currentPlayer.controllerIndex) == true && Game.instance.currentPlayer.GetCountMinions (MinionColor.RED) > 0) { buttonTriggered = GamePad.Button.B; isTriggered = true; _isKeyStroke = false; currentMode = Mode.Action; return; } else if (Input.GetButton("Button_B") == true && Game.instance.currentPlayer.GetCountMinions(MinionColor.RED) > 0) { buttonTriggered = GamePad.Button.B; isTriggered = true; _isKeyStroke = true; currentMode = Mode.Action; return; } /* Button X */ if (GamePad.GetButtonDown(GamePad.Button.X, Game.instance.currentPlayer.controllerIndex) == true && Game.instance.currentPlayer.GetCountMinions (MinionColor.BLUE) > 0) { buttonTriggered = GamePad.Button.X; isTriggered = true; _isKeyStroke = false; currentMode = Mode.Action; return; } else if (Input.GetButton("Button_X") == true && Game.instance.currentPlayer.GetCountMinions(MinionColor.BLUE) > 0) { buttonTriggered = GamePad.Button.X; isTriggered = true; _isKeyStroke = true; currentMode = Mode.Action; return; } /* Button Y */ if (GamePad.GetButtonDown(GamePad.Button.Y, Game.instance.currentPlayer.controllerIndex) == true && Game.instance.currentPlayer.GetCountMinions (MinionColor.YELLOW) > 0) { buttonTriggered = GamePad.Button.Y; isTriggered = true; _isKeyStroke = false; currentMode = Mode.Action; return; } else if (Input.GetButton("Button_Y") == true && Game.instance.currentPlayer.GetCountMinions(MinionColor.YELLOW) > 0) { buttonTriggered = GamePad.Button.Y; isTriggered = true; _isKeyStroke = true; currentMode = Mode.Action; return; } /* Moves */ if (Input.GetButton("Up") == true || state.Up == true) { int tmpTileIndex = Game.instance.currentPlayer.tileIndex - (1 * Game.instance.currentPlayer.speed * Game.instance.mapManager.map.columns); if (Game.instance.currentPlayer.CanMove(tmpTileIndex) == true) { buttonTriggered = GamePad.Button.Up; isTriggered = true; _isKeyStroke = Input.GetButton("Up") == true; currentMode = Mode.Move; _newTileIndex = tmpTileIndex; return; } } if (Input.GetButton("Right") == true || state.Right == true) { int tmpTileIndex = Game.instance.currentPlayer.tileIndex + (1 * Game.instance.currentPlayer.speed); if (Game.instance.currentPlayer.CanMove(tmpTileIndex) == true) { buttonTriggered = GamePad.Button.Right; isTriggered = true; _isKeyStroke = Input.GetButton("Right") == true; currentMode = Mode.Move; _newTileIndex = tmpTileIndex; return; } } if (Input.GetButton("Down") == true || state.Down == true) { int tmpTileIndex = Game.instance.currentPlayer.tileIndex + (1 * Game.instance.currentPlayer.speed * Game.instance.mapManager.map.columns); if (Game.instance.currentPlayer.CanMove(tmpTileIndex) == true) { buttonTriggered = GamePad.Button.Down; isTriggered = true; _isKeyStroke = Input.GetButton("Down") == true; currentMode = Mode.Move; _newTileIndex = tmpTileIndex; return; } } if (Input.GetButton("Left") == true || state.Left == true) { int tmpTileIndex = Game.instance.currentPlayer.tileIndex - (1 * Game.instance.currentPlayer.speed); if (Game.instance.currentPlayer.CanMove(tmpTileIndex) == true) { buttonTriggered = GamePad.Button.Left; isTriggered = true; _isKeyStroke = Input.GetButton("Left") == true; currentMode = Mode.Move; _newTileIndex = tmpTileIndex; return; } } } // Do you release a button ? else { if (buttonTriggered == GamePad.Button.A && ((GamePad.GetButtonUp(GamePad.Button.A, Game.instance.currentPlayer.controllerIndex) == true && _isKeyStroke == false) || (Input.GetButton("Button_A") == false && _isKeyStroke == true)) ) { buttonTriggered = GamePad.Button.None; isTriggered = false; _isKeyStroke = false; currentMode = Mode.None; return; } if (buttonTriggered == GamePad.Button.B && ((GamePad.GetButtonUp(GamePad.Button.B, Game.instance.currentPlayer.controllerIndex) == true && _isKeyStroke == false) || (Input.GetButton("Button_B") == false && _isKeyStroke == true)) ) { buttonTriggered = GamePad.Button.None; isTriggered = false; _isKeyStroke = false; currentMode = Mode.None; return; } if (buttonTriggered == GamePad.Button.X && ((GamePad.GetButtonUp(GamePad.Button.X, Game.instance.currentPlayer.controllerIndex) == true && _isKeyStroke == false) || (Input.GetButton("Button_X") == false && _isKeyStroke == true)) ) { buttonTriggered = GamePad.Button.None; isTriggered = false; _isKeyStroke = false; currentMode = Mode.None; return; } if (buttonTriggered == GamePad.Button.Y && ((GamePad.GetButtonUp(GamePad.Button.Y, Game.instance.currentPlayer.controllerIndex) == true && _isKeyStroke == false) || (Input.GetButton("Button_Y") == false && _isKeyStroke == true)) ) { buttonTriggered = GamePad.Button.None; isTriggered = false; _isKeyStroke = false; currentMode = Mode.None; return; } if (buttonTriggered == GamePad.Button.Up && ((state.Up == false && _isKeyStroke == false) || (Input.GetButton("Up") == false && _isKeyStroke == true)) ) { buttonTriggered = GamePad.Button.None; isTriggered = false; _isKeyStroke = false; currentMode = Mode.None; ActionLoader.instance.CleanHighlight(_newTileIndex); return; } if (buttonTriggered == GamePad.Button.Right && ((state.Right == false && _isKeyStroke == false) || (Input.GetButton("Right") == false && _isKeyStroke == true)) ) { buttonTriggered = GamePad.Button.None; isTriggered = false; _isKeyStroke = false; currentMode = Mode.None; ActionLoader.instance.CleanHighlight(_newTileIndex); return; } if (buttonTriggered == GamePad.Button.Down && ((state.Down == false && _isKeyStroke == false) || (Input.GetButton("Down") == false && _isKeyStroke == true)) ) { buttonTriggered = GamePad.Button.None; isTriggered = false; _isKeyStroke = false; currentMode = Mode.None; ActionLoader.instance.CleanHighlight(_newTileIndex); return; } if (buttonTriggered == GamePad.Button.Left && ((state.Left == false && _isKeyStroke == false) || (Input.GetButton("Left") == false && _isKeyStroke == true)) ) { buttonTriggered = GamePad.Button.None; isTriggered = false; _isKeyStroke = false; currentMode = Mode.None; ActionLoader.instance.CleanHighlight(_newTileIndex); return; } } }
public void Clean() { _isKeyStroke = false; isTriggered = false; currentMode = Mode.None; buttonTriggered = GamePad.Button.None; }