/// <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; } } }
/// <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; } } }
/// <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)); } } }
/// <summary> /// 输入设备改变时 /// </summary> /// <param name="device"></param> private void OnInputDeviceChanged(InputManager.GameInputDevice device) { UpdateCursorStyle(); }
/// <summary> /// 输入设备改变时 /// </summary> /// <param name="device"></param> private void OnInputDeviceChanged(InputManager.GameInputDevice device) { RestScrollEvent(); }