コード例 #1
0
    //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;
        }
    }