Пример #1
0
    void RefreshSystemState()
    {
        var nl = Environment.NewLine;

        var names = Input.GetJoystickNames();

        m_GamepadCount = names.Length;
        Controller_Dropdown.ClearOptions();
        Controller_Dropdown.AddOptions(names.ToList());
        Controller_Dropdown.value = Mathf.Clamp(Controller_Dropdown.value, 0, names.Length);
        Controller_Dropdown.RefreshShownValue();

        if (names.Length == 0)
        {
            Controller_Dropdown.value = -1;
            return;
        }

        int device_count = names.Length;
        int disconnected = names
                           .Where(string.IsNullOrEmpty)
                           .Count();

        Input_System.text = $"Devices.Count: {device_count - disconnected}" + nl +
                            $"DisconnectedDevices.Count: {disconnected}";

        var  current_name = names[Controller_Dropdown.value];
        bool is_dualshock = DetectGamepad(current_name) == GamepadType.DualShock;

        DualShock_Controller.SetActive(is_dualshock);
        XBOX_Controller.SetActive(!is_dualshock);

        if (is_dualshock)
        {
            m_CurrentMapping = GamepadMappings.Create_DualShock();
        }
        else
        {
            m_CurrentMapping = GamepadMappings.Create_Xinput();
        }
        m_CurrentMapping.m_GamepadId = Controller_Dropdown.value;
    }
Пример #2
0
 private void Awake()
 {
     Application.runInBackground = true;
     m_CurrentMapping            = GamepadMappings.Create_Xinput();
     Controller_Dropdown.onValueChanged.AddListener((i) => RefreshSystemState());
 }