private void Updated(float deltaTime) { for (int i = 0; i < MouseButtons.Count; i++) { if (MouseButtons[i].IsDown) { if (Input.GetMouseButtonUp(i)) { MouseButtons[i].IsDown = false; MouseUpSignal.Dispatch(i); //Check Distance if (Vector3.Distance(Input.mousePosition, MouseButtons[i].OriginMousePosition) < MouseMovementThreshhold) { MouseClickSignal.Dispatch(i); } } } else { if (Input.GetMouseButtonDown(i)) { MouseButtons[i].OriginMousePosition = Input.mousePosition; MouseButtons[i].IsDown = true; MouseDownSignal.Dispatch(i); } } } }
public override void OnRegister() { base.OnRegister(); Updater.UpdateCallback -= Updated; Updater.UpdateCallback += Updated; cam = GetComponent <Camera>(); wantedSize = cam.orthographicSize; mouseInputPlane = new Plane(Vector3.forward, Vector3.zero); MouseDownSignal.AddListener(OnMouseDown); MouseUpSignal.AddListener(OnMouseUp); }