private void Start()
        {
            m_eventSystem = m_eventSystemMananger.GetEventSystem(LocalPlayerIndex);

            for (int i = 0; i < m_buttons.Length; ++i)
            {
                AddListeners(m_buttons[i]);
            }
        }
        private void Start()
        {
            m_eventSystem = m_eventSystemMananger.GetEventSystem(LocalPlayerIndex);

            AddListeners(m_cancelBtn);
            AddListeners(m_attackBtn);
            AddListeners(m_moveBtn);
            AddListeners(m_autoBtn);
            AddListeners(m_bombBtn);
            AddListeners(m_wallBtn);
            AddListeners(m_spawnButton);
            AddListeners(m_splitButton);
            AddListeners(m_split4Button);
            AddListeners(m_growButton);
            AddListeners(m_diminishButton);
        }
        private void OnDestroy()
        {
            if (m_eventSystemManager != null)
            {
                for (int i = 0; i < m_eventSystemManager.EventSystemCount; ++i)
                {
                    IndependentEventSystem eventSystem = m_eventSystemManager.GetEventSystem(i);
                    eventSystem.EventSystemUpdate -= OnEventSystemUpdate;
                }

                if (m_eventSystemManager.CommonEventSystem != null)
                {
                    m_eventSystemManager.CommonEventSystem.EventSystemUpdate -= OnCommonEventSystemUpdate;
                }
            }

            InputManager.OnDeviceAttached      -= OnDeviceAttached;
            InputManager.OnDeviceDetached      -= OnDeviceDetached;
            InputManager.OnActiveDeviceChanged -= OnActiveDeviceChanged;
        }
        private void Start()
        {
            m_gState   = Dependencies.State;
            m_progress = Dependencies.Progress;


            m_eventSystemManager = Dependencies.EventSystemManager;
            for (int i = 0; i < m_eventSystemManager.EventSystemCount; ++i)
            {
                IndependentEventSystem eventSystem = m_eventSystemManager.GetEventSystem(i);
                eventSystem.EventSystemUpdate += OnEventSystemUpdate;
            }

            if (m_eventSystemManager.CommonEventSystem != null)
            {
                m_eventSystemManager.CommonEventSystem.EventSystemUpdate += OnCommonEventSystemUpdate;
            }


            m_isPointerOverGameObject = new bool[m_eventSystemManager.EventSystemCount];
            m_isInputFieldSelected    = new bool[m_eventSystemManager.EventSystemCount];
            m_selectedGameObject      = new GameObject[m_eventSystemManager.EventSystemCount];

            InputManager.OnDeviceAttached      += OnDeviceAttached;
            InputManager.OnDeviceDetached      += OnDeviceDetached;
            InputManager.OnActiveDeviceChanged += OnActiveDeviceChanged;

            if (!m_gState.HasKey(DevicesPersistentKey))
            {
                m_devices = new List <InputDevice>(InputManager.Devices.Count);
                m_gState.SetValue(DevicesPersistentKey, m_devices);
            }
            else
            {
                m_devices = m_gState.GetValue <List <InputDevice> >(DevicesPersistentKey);
                for (int i = 0; i < m_devices.Count; ++i)
                {
                    UnityInputDevice device = m_devices[i] as UnityInputDevice;
                    if (device == null)
                    {
                        if (m_devices[i] != null)
                        {
                            m_devices[i].IsSuspended = true;
                        }
                        m_devices[i] = null;
                    }
                    else
                    {
                        InputDevice replacementDevice = InputManager.Devices.OfType <UnityInputDevice>().Where(dev => dev.JoystickId == device.JoystickId).FirstOrDefault();
                        if (replacementDevice != null)
                        {
                            replacementDevice.IsSuspended = false;
                            m_devices[i] = replacementDevice;
                        }
                        else
                        {
                            if (m_devices[i] != null)
                            {
                                m_devices[i].IsSuspended = true;
                            }
                            m_devices[i] = null;
                        }
                    }
                }
            }

            LogDevices();
        }