//Recreatee drag handler based on mouse void CheckMouse() { if (Input.GetMouseButtonDown(0)) { coll = Physics2D.OverlapPoint(Camera.main.ScreenToWorldPoint(Input.mousePosition)); if (coll == null) { return; } if (coll.CompareTag("Manipulator")) { curr_selected_obj = coll.GetComponent <Manipulator>(); } touch_timer = buffer_time; isSelected = false; } if (Input.GetMouseButton(0)) { if (curr_selected_obj == null) { return; } touch_timer -= Time.deltaTime; //Start the drag mechanic if (touch_timer <= 0 && !isSelected) { isSelected = true; curr_selected_obj.StartDrag(); } else if (touch_timer <= 0 && isSelected) { curr_selected_obj.Drag(); } } if (Input.GetMouseButtonUp(0)) { if (curr_selected_obj == null) { return; } //Case 1 : Tap if (touch_timer >= 0) { curr_selected_obj.Rotate_Right(); } //Case 2 : Drag and release if (touch_timer <= 0) { curr_selected_obj.EndDrag(); } curr_selected_obj = null; } }