public static void Update() { var oldMouseState = MouseState; MouseState = OpenTK.Input.Mouse.GetCursorState(); if (MouseState.LeftButton != oldMouseState.LeftButton) { if (MouseState.LeftButton == ButtonState.Pressed) { foreach (var dele in LeftPress?.GetInvocationList() ?? new Delegate[] { }) { if ((bool)dele.DynamicInvoke()) { break; } } } else { foreach (var dele in LeftRelease?.GetInvocationList() ?? new Delegate[] { }) { if ((bool)dele.DynamicInvoke()) { break; } } } } if (MouseState.RightButton != oldMouseState.RightButton) { if (MouseState.RightButton == ButtonState.Pressed) { foreach (var dele in RightPress?.GetInvocationList() ?? new Delegate[] { }) { if ((bool)dele.DynamicInvoke()) { break; } } } else { foreach (var dele in RightRelease?.GetInvocationList() ?? new Delegate[] { }) { if ((bool)dele.DynamicInvoke()) { break; } } } } }
private void OnMouseOver() { if (Input.GetMouseButtonDown(0)) { LeftClick.Invoke(); } if (Input.GetMouseButtonDown(1)) { RightClick.Invoke(); } if (Input.GetMouseButton(0)) { LeftHold.Invoke(); } if (Input.GetMouseButton(1)) { RightHold.Invoke(); } if (Input.GetMouseButtonUp(0)) { LeftRelease.Invoke(); } if (Input.GetMouseButtonUp(1)) { RightRelease.Invoke(); } }