private IEnumerator UpdateJoystickState()
        {
            while (true)
            {
                string[] names = InputManager.GetJoystickNames();
                for (int i = 0; i < m_joystickState.Length; i++)
                {
                    m_joystickState[i] = names.Length > i && !string.IsNullOrEmpty(names[i]);
                }

                yield return(new WaitForSeconds(m_joystickCheckFrequency));
            }
        }
Пример #2
0
        private IEnumerator UpdateJoystickState()
        {
            while (true)
            {
                string[] names = InputManager.GetJoystickNames();
                for (int i = 0; i < m_gamepadStatus.Length; i++)
                {
                    GamepadStatus oldStatus = m_gamepadStatus[i];
                    if (names.Length > i && !string.IsNullOrEmpty(names[i]))
                    {
                        m_gamepadStatus[i] = new GamepadStatus(names[i], true);
                    }
                    else
                    {
                        m_gamepadStatus[i] = GamepadStatus.NotConnected;
                    }

                    if (oldStatus.IsConnected && !m_gamepadStatus[i].IsConnected)
                    {
                        if (GamepadDisconnected != null)
                        {
                            GamepadDisconnected((GamepadIndex)i);
                        }

                        Debug.LogFormat("Gamepad Disconnected: {0}", oldStatus.Name);
                    }

                    if (!oldStatus.IsConnected && m_gamepadStatus[i].IsConnected)
                    {
                        if (GamepadConnected != null)
                        {
                            GamepadConnected((GamepadIndex)i);
                        }

                        Debug.LogFormat("Gamepad Connected: {0}", m_gamepadStatus[i].Name);
                    }
                }

                yield return(new WaitForSeconds(m_joystickCheckFrequency));
            }
        }