private void MouseDrag(int buttonId, Vector3 mousePosition, float axisX, float axisY) { if (!CanDrag()) { return; } OnMouseDrag?.Invoke(buttonId, mousePosition, axisX, axisY); }
private void MouseDrag(int buttonId, Vector3 mousePosition, float axisX, float axisY) { if (!canInputBeMade) { return; } if (!BuilderInWorldUtils.IsPointerOverUIElement()) { OnMouseDrag?.Invoke(buttonId, mousePosition, axisX, axisY); } }
private bool HasMouseButtonInput(int button) { if (Input.GetMouseButtonDown(button)) { OnMouseDown?.Invoke(button, Input.mousePosition); return(true); } else if (Input.GetMouseButton(button)) { OnMouseDrag?.Invoke(button, Input.mousePosition, Input.GetAxis(MouseXAxis), Input.GetAxis(MouseYAxis)); return(true); } else if (Input.GetMouseButtonUp(button)) { OnMouseUp?.Invoke(button, Input.mousePosition); return(true); } return(false); }
private void UpdateButton(int button, int infoIndex) { bool wasPressed = lastMouseDownState[infoIndex]; bool isPressed = Input.GetMouseButton(button); if (isPressed != wasPressed) { //Debug.Log("MOUSE " + wasPressed + " -> " + isPressed); if (isPressed) { // click started lastMouseDownPos[infoIndex] = Input.mousePosition; lastMouseDownTime[infoIndex] = Time.realtimeSinceStartup; OnMousePress?.Invoke(button, Input.mousePosition); } else { // click ended OnMouseRelease?.Invoke(button, Input.mousePosition); Vector3 lastPosition = lastMouseDownPos[infoIndex]; float dragDist = (Input.mousePosition - lastPosition).sqrMagnitude; if (lastMouseWasDragging[infoIndex] || dragDist >= minDistDragScreenSqr) { // drag //Debug.Log("MOUSE DRAG from " + lastPosition + " to " + Input.mousePosition + " dist " + String.Format("{0,2}", dragDist)); OnMouseDrag?.Invoke(button, lastMouseDownPos[infoIndex], Input.mousePosition, Time.realtimeSinceStartup - lastMouseDownTime[infoIndex], true); } else { OnMouseClick?.Invoke(button, lastMouseDownPos[infoIndex], Input.mousePosition); } } lastMouseDownState[infoIndex] = isPressed; } if (!isPressed) { lastMouseWasDragging[infoIndex] = false; } if (isPressed && wasPressed) { // potential dragging event bool isDrag = false; if (lastMouseWasDragging[infoIndex]) { isDrag = true; } else { Vector3 startPosition = lastMouseDownPos[infoIndex]; if ((startPosition - Input.mousePosition).sqrMagnitude >= minDistDragScreenSqr) { isDrag = true; } } if (isDrag) { lastMouseWasDragging[infoIndex] = true; OnMouseDrag?.Invoke(button, lastMouseDownPos[infoIndex], Input.mousePosition, Time.realtimeSinceStartup - lastMouseDownTime[infoIndex], false); } } }