Пример #1
0
    private void Update()
    {
        _playerManager.UpdatePlayerList(); // update players list
        CheckAllPlayersSelected();

#if UNITY_EDITOR
        if (Input.GetKey(KeyCode.Space))
        {
            SceneManager.LoadScene(2);                              // load scene only in editor mode
        }
#endif
        // check input from all players
        for (int i = 0; i < _playerManager.Players.Count; i++)
        {
            PlayerInformation tPlayerInfo = _playerManager.Players[i]; // input found
#if UNITY_EDITOR
            if (_xboxControllerManager.GetButtonPressed(tPlayerInfo, ButtonType.BUTTON_START))
            {
                SceneManager.LoadScene(2);                                                                                // load scene only in editor mode
            }
#endif
            if (_playerHasSelected[i])                                          // check if already selected a character
            {
                if (_selectionButtons.GetButtonClicked(ButtonType.BUTTON_B, i)) // check if back button has been clicked
                {
                    Sprite tCurrentSprite = _playerImages[i].sprite;
                    _playerHasSelected[i] = false;
                    _sprites.Add(tCurrentSprite);
                    _playerImages[i].color = new Color(_deselectedBlackness, _deselectedBlackness, _deselectedBlackness, 1f);
                    _playerSpriteIndex[i]  = _sprites.Count - 1;
                }
                else
                {
                    continue; // next 'i' index when not.
                }
            }

            //character next/previous selection
            if (_xboxControllerManager.GetLeftStickAxis(tPlayerInfo).x > _selectSensitivity)
            {
                if (_playerHasSwitchedCharacter[i])
                {
                    break;                                 // prevent fast player switching
                }
                _playerHasSwitchedCharacter[i] = true;
                if (_playerSpriteIndex[i] >= _sprites.Count - 1)
                {
                    _playerSpriteIndex[i] = 0;
                }
                else
                {
                    _playerSpriteIndex[i]++;
                }
            }
            else if (_xboxControllerManager.GetLeftStickAxis(tPlayerInfo).x < -_selectSensitivity)
            {
                if (_playerHasSwitchedCharacter[i])
                {
                    break;                                 // prevent fast player switching
                }
                _playerHasSwitchedCharacter[i] = true;
                if (_playerSpriteIndex[i] == 0)
                {
                    _playerSpriteIndex[i] = _sprites.Count - 1;
                }
                else
                {
                    _playerSpriteIndex[i]--;
                }
            }
            else
            {
                _playerHasSwitchedCharacter[i] = false;
            }
            if (_playerSpriteIndex[i] > _sprites.Count - 1)
            {
                _playerSpriteIndex[i] = 0;                                             // check index to prevent errors
            }
            Sprite tSprite = _sprites[_playerSpriteIndex[i]];

            //select character
            if (_selectionButtons.GetButtonClicked(ButtonType.BUTTON_A, i))
            {
                _playerHasSelected[i] = true;
                _sprites.Remove(tSprite);
                _playerImages[i].color = new Color(_selectedBlackness, _selectedBlackness, _selectedBlackness, 1);
                tPlayerInfo.SetSelectedCharacterPath(_characterPrefabReferences[tSprite]);
                for (int j = 0; j < _playerImages.Length; j++)
                {
                    if (j == i)
                    {
                        break;
                    }
                    if (_playerImages[j].sprite.Equals(tSprite))
                    {
                        _playerImages[j].sprite = _sprites[0];
                    }
                }
            }

            _playerImages[i].sprite = tSprite;
        }
    }
Пример #2
0
    void Update()
    {
        for (int i = 0; i < _playerManager.Players.Count; i++)
        {
            if (_xboxControllerManager.GetButtonPressed(_playerManager.Players[i], ButtonType.BUTTON_START))
            {
                if (!_pressedButton[i])
                {
                    PressPauseButton();
                    _pressedButton[i] = true;
                }
            }
            else if (_pressedButton[i])
            {
                _pressedButton[i] = false;
            }
            if (_pauseScreen.activeInHierarchy)
            {
                if (_xboxControllerManager.GetButtonPressed(_playerManager.Players[i], ButtonType.BUTTON_A))
                {
                    if (_selectedButton == 0)
                    {
                        ResumeGame();
                    }
                    else if (_selectedButton == 1)
                    {
                        RetryButton();
                    }
                    else
                    {
                        QuitGame();
                    }
                }

                if (_changedButton[i])
                {
                    if (_xboxControllerManager.GetLeftStickAxis(_playerManager.Players[i]).z > _sensitivity)
                    {
                        if (!_changedButton[i])
                        {
                            _changedButton[i] = true;
                            _selectedButton--;
                            if (_selectedButton == -1)
                            {
                                _selectedButton = _buttonImages.Count - 1;
                            }
                        }
                    }
                    else if (_xboxControllerManager.GetLeftStickAxis(_playerManager.Players[i]).z < -_sensitivity)
                    {
                        if (!_changedButton[i])
                        {
                            _changedButton[i] = true;
                            _selectedButton++;
                            if (_selectedButton >= _buttonImages.Count)
                            {
                                _selectedButton = 0;
                            }
                        }
                    }
                    else
                    {
                        _changedButton[i] = false;
                    }
                    for (int j = 0; j < _buttonImages.Count; j++)
                    {
                        if (_selectedButton != j)
                        {
                            _buttonImages[j].color = Color.grey;
                        }
                        else
                        {
                            _buttonImages[j].color = Color.white;
                        }
                    }
                }
            }
        }
    }