private void OnMouseInputEvent(Vector2 pixelPosition, H1MouseButton button, InputEventType type, float value = 0.0f) { // the mouse wheel event are still received when the mouse cursor is out of the control boundaries. discard the event in this case if (type == InputEventType.Wheel && !Control.IsMouseOver) { return; } // the mouse event series has been interrupted because out of the window if (type == InputEventType.Up && !m_MouseButtonCurrentlyDown[(int)button]) { return; } m_CurrentMousePosition = NormalizeScreenPosition(pixelPosition); var mouseInputEvent = new MouseInputEvent { Type = type, MouseButton = button, Value = value }; m_MouseInputEvents.Add(mouseInputEvent); if (type != InputEventType.Wheel) { var buttonId = (int)button; m_MouseButtonCurrentlyDown[buttonId] = type == InputEventType.Down; HandleMouseMovingEvents(buttonId, m_CurrentMousePosition, InputEventTypeToMouseState(type)); } }
// pressed is trigger!!!! public bool IsMouseButtonPressed(H1MouseButton mouseButton) { return(!m_MouseButtonsPrevious[(int)mouseButton] && m_MouseButtons[(int)mouseButton]); }
public bool IsMouseButtonReleased(H1MouseButton mouseButton) { return(m_MouseButtonsPrevious[(int)mouseButton] && !m_MouseButtons[(int)mouseButton]); }
public bool IsMouseButtonDown(H1MouseButton mouseButton) { return(m_MouseButtons[(int)mouseButton]); }