private IEnumerator ListenInput_Coroutine() { // Skip the first frame as we're just triggering A input to start listening yield return(null); bool validInputReceived = false; while (!validInputReceived) { List <GameInput> gamepadInputList = GamePadManager.GetPlayerGamepadInput((int)m_Player); if (HasValidInput(gamepadInputList, out EInputKey validInput)) { m_CurrentInputKey = validInput; StopListeningInput(); yield break; } yield return(null); } }
public void ResetPlayerInputMapping(int playerIndex) { // Check if it's the correct player's trying to update input List <GameInput> gamepadInputList = GamePadManager.GetPlayerGamepadInput(playerIndex); if (gamepadInputList.Exists(x => x.GetInputKey() == EInputKey.A)) { GamePadManager.ResetPlayerGamepadInputMapping(playerIndex); PlayerControlInfo playerControlInfo = playerIndex == 0 ? m_Player1ControlsMapping : m_Player2ControlsMapping; for (int i = 0; i < playerControlInfo.m_InputListeners.Length; i++) { playerControlInfo.m_InputListeners[i].ResetInputMapping(); } } else { DisplayWrongPlayerFeedback(); } }
public void StartListeningInput() { // Check if it's the correct player's trying to update input List <GameInput> gamepadInputList = GamePadManager.GetPlayerGamepadInput((int)m_Player); if (gamepadInputList.Exists(x => x.GetInputKey() == EInputKey.A)) { m_IsListeningInput = true; m_OldInputKey = m_CurrentInputKey; m_CurrentEventSystem = EventSystem.current; m_CurrentEventSystem.enabled = false; m_XboxImageInput.enabled = false; m_PS4ImageInput.enabled = false; m_PressAKeyText.enabled = true; StartCoroutine(ListenInput_Coroutine()); } else { m_ControlMenuComponent.DisplayWrongPlayerFeedback(); } }