예제 #1
0
    /// <summary>
    /// 重置滚动相关事件处理
    /// </summary>
    private void RestScrollEvent()
    {
        if (HotkeyManager.Instance == null)
        {
            return;
        }
        if (InputManager.Instance == null)
        {
            return;
        }

        bool focused      = m_Enabled && m_Focused;
        bool navigateMode = InputManager.Instance.GetNavigateMode();

        InputManager.GameInputDevice device = InputManager.Instance.CurrentInputDevice;

        string hotkeyID = "scroll_" + GetInstanceID();

        HotkeyManager.Instance.Unregister(hotkeyID);

        UIManager.Instance.OnUpdate -= UpdateScroll;

        if (focused && !navigateMode && device != InputManager.GameInputDevice.KeyboardAndMouse)
        {
            HotkeyManager.Instance.Register(hotkeyID, HotKeyID.UGUI_Stick2, UpdateScroll);

            if (Stick == ScrollStick.LeftStick || Stick == ScrollStick.RightStick)
            {
                UIManager.Instance.OnUpdate += UpdateScroll;
            }
        }
    }
예제 #2
0
 /// <summary>
 /// 输入硬件改变时
 /// </summary>
 private void OnInputDeviceChanged(InputManager.GameInputDevice device)
 {
     if (m_ScrollControllers.Count > 0)
     {
         bool enabled = InputManager.Instance.CurrentInputDevice != InputManager.GameInputDevice.KeyboardAndMouse;
         foreach (ScrollController controller in m_ScrollControllers)
         {
             controller.enabled = enabled;
         }
     }
 }
예제 #3
0
    /// <summary>
    /// 输入设备改变时
    /// </summary>
    private void OnInputDeviceChanged(InputManager.GameInputDevice device)
    {
        if (!m_Scroller)
        {
            return;
        }

        if (!OwnerView.Focused)
        {
            return;
        }

        if (m_Scroller.verticalScrollbar)
        {
            m_Scroller.verticalScrollbar.interactable = InputManager.Instance.CurrentInputDevice == InputManager.GameInputDevice.KeyboardAndMouse;
        }

        if (m_Scroller.horizontalScrollbar)
        {
            m_Scroller.horizontalScrollbar.interactable = InputManager.Instance.CurrentInputDevice == InputManager.GameInputDevice.KeyboardAndMouse;
        }

        if (InputManager.Instance.CurrentInputDevice == InputManager.GameInputDevice.KeyboardAndMouse)
        {
            var selection = State.GetPage().ListSelection;
            if (selection.x == -1 && selection.y == -1)
            {
                m_Scroller.SetSelection(new Vector2Int(0, 0));
            }
            else
            {
                m_Scroller.SetSelection(State.GetPage().ListSelection);
            }
        }
        else
        {
            if (!InputManager.Instance.GetNavigateMode())
            {
                m_Scroller.SetSelection(new Vector2Int(-1, -1));
            }
        }
    }
예제 #4
0
 /// <summary>
 /// 输入设备改变时
 /// </summary>
 /// <param name="device"></param>
 private void OnInputDeviceChanged(InputManager.GameInputDevice device)
 {
     UpdateCursorStyle();
 }
예제 #5
0
 /// <summary>
 /// 输入设备改变时
 /// </summary>
 /// <param name="device"></param>
 private void OnInputDeviceChanged(InputManager.GameInputDevice device)
 {
     RestScrollEvent();
 }