如何限制可拖动距离?

How can I limit draggable distance?

我尝试制作一个可拖动的抽屉,我使用了这段代码:

     void OnMouseDrag() {
         Vector3 curScreenPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z);
         Vector3 curPosition = Camera.main.ScreenToWorldPoint(curScreenPoint) + offset;

         //Debug.Log(curPosition[0]);
         curPosition.y = gameObject.transform.position.y;
         curPosition.z = gameObject.transform.position.z;
         //curPosition.x = Mathf.Clamp(gameObject.transform.position.x,-3.0F,3.0F);
        transform.position = curPosition;

     }

如何限制x的拖动范围?因为我不想有这样的东西:

我尝试使用 Mathf.Clamp,但效果不佳。

谢谢!对不起我的英语。

我建议使用 Physics Joints, more preciselly a ConfigurableJoint。你可以限制你的关节在每个轴上可以移动的距离(我曾经用它来做一些抽屉)。