Example #1
0
    private void CheckInputSelection(PlayerPrompt prompt)
    {
        if (prompt && prompt.inputDropdown)
        {
            int value = prompt.inputDropdown.value;
            if (value - 1 < controllersInPrompts.Length)
            {
                if (prompt)
                {
                    RefreshLayoutDropdown(prompt);

                    prompt.inputTypeImage.color = new Color(0, 0, 0, 1);
                    if (value <= 0)
                    {
                        prompt.inputTypeImage.color = new Color(0, 0, 0, 0);
                    }
                    else if (controllersInPrompts[value - 1].type == ControllerType.Keyboard)
                    {
                        prompt.inputTypeImage.overrideSprite = keyboardIcon;
                    }
                    else if (controllersInPrompts[value - 1].type == ControllerType.Mouse)
                    {
                        prompt.inputTypeImage.overrideSprite = mouseIcon;
                    }
                    else
                    {
                        prompt.inputTypeImage.overrideSprite = joystickIcon;
                    }
                }
            }
        }

        playerManagementContinueButton.interactable = AllPlayersPickedControllers();
    }
Example #2
0
    public void RefreshPlayerPrompts()
    {
        if (playerPrompts != null)
        {
            #region Add AddPlayerButton?
            if (currentAddPlayerButton)
            {
                Destroy(currentAddPlayerButton.gameObject);
            }
            if (playerPrompts.Count < maxPlayers)
            {
                currentAddPlayerButton = Instantiate(addPlayerButtonPrefab);
                currentAddPlayerButton.onClick.AddListener(AddPlayerPrompt);
                currentAddPlayerButton.transform.SetParent(playerBowlContent.transform, false);
            }
            #endregion

            Controller[] previousControllers = controllersInPrompts;
            controllersInPrompts = ReInput.controllers.Controllers.ToArray();
            List <string> controllerNames = new List <string>();
            controllerNames.Add("None");
            foreach (Controller controller in controllersInPrompts)
            {
                controllerNames.Add(controller.name);
            }

            for (int i = 0; i < playerPrompts.Count; i++)
            {
                PlayerPrompt playerPrompt = playerPrompts[i];
                playerPrompt.playerText.text = "Player " + (i > 8 ? "" : "0") + (i + 1);

                int selectionIndex = -1;
                #region Check Controller Selection
                if (playerPrompt.inputDropdown.value > 0)
                {
                    Controller inputSelection = previousControllers[playerPrompt.inputDropdown.value - 1];

                    if (inputSelection.isConnected)
                    {
                        for (int j = 0; j < controllersInPrompts.Length; j++)
                        {
                            if (controllersInPrompts[j] == inputSelection)
                            {
                                selectionIndex = j; break;
                            }
                        }
                    }
                    //Debug.Log("Index Found: " + selectionIndex);
                }
                #endregion
                playerPrompt.inputDropdown.ClearOptions();
                playerPrompt.inputDropdown.AddOptions(controllerNames);

                playerPrompt.inputDropdown.value = selectionIndex + 1;
                CheckInputSelection(playerPrompt);
            }
        }
    }
Example #3
0
    private void OnRemovePlayerClicked()
    {
        PlayerPrompt playerPrompt = EventSystem.current.currentSelectedGameObject.GetComponentInParent <PlayerPrompt>();

        if (playerPrompt)
        {
            if (playerPrompts.Contains(playerPrompt))
            {
                playerPrompts.Remove(playerPrompt);
            }
            Destroy(playerPrompt.gameObject);
            RefreshPlayerPrompts();
        }

        playerManagementContinueButton.interactable = AllPlayersPickedControllers();
    }
Example #4
0
    public void RefreshLayoutDropdown(PlayerPrompt playerPrompt)
    {
        if (playerPrompt.inputDropdown && playerPrompt.layoutDropdown)
        {
            playerPrompt.layoutDropdown.value = 0;
            playerPrompt.layoutDropdown.ClearOptions();
            if (playerPrompt.inputDropdown.value > 0 && playerPrompt.inputDropdown.value - 1 < controllersInPrompts.Length)
            {
                Controller          controller = controllersInPrompts[playerPrompt.inputDropdown.value - 1];
                IList <InputLayout> layouts;
                if (controller.type == ControllerType.Joystick)
                {
                    layouts = ReInput.mapping.JoystickLayouts;
                }
                else if (controller.type == ControllerType.Keyboard)
                {
                    layouts = ReInput.mapping.KeyboardLayouts;
                }
                else if (controller.type == ControllerType.Mouse)
                {
                    layouts = ReInput.mapping.MouseLayouts;
                }
                else
                {
                    layouts = ReInput.mapping.CustomControllerLayouts;
                }

                List <string> layoutNames = new List <string>();
                foreach (InputLayout layout in layouts)
                {
                    if (ReInput.mapping.GetControllerMapInstance(controller, "VehicleActions", layout.name).elementMapCount > 0)
                    {
                        layoutNames.Add(layout.name);
                    }
                }
                playerPrompt.layoutDropdown.AddOptions(layoutNames);
            }

            playerPrompt.layoutDropdown.interactable = playerPrompt.layoutDropdown.options.Count > 0;
        }
    }
Example #5
0
    public void AddPlayerPrompt()
    {
        if (playerPrompts == null)
        {
            playerPrompts = new List <PlayerPrompt>();
        }

        PlayerPrompt playerPrompt = Instantiate(playerPromptPrefab);

        playerPrompt.removePlayerButton.onClick.AddListener(OnRemovePlayerClicked);
        playerPrompt.inputDropdown.onValueChanged.AddListener(OnControllerDropdownValueChanged);
        playerPrompt.transform.SetParent(playerBowlContent.transform, false);

        if (playerPrompts.Count <= 0)
        {
            playerPrompt.removePlayerButton.interactable = false;
        }
        playerPrompts.Add(playerPrompt);
        RefreshPlayerPrompts();

        playerManagementContinueButton.interactable = AllPlayersPickedControllers();
    }