我怎样才能限制可拖动的距离?

时间:2017-11-05 07:37:32

标签: unity3d draggable drag

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

     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的拖动范围?因为我不想要这样的东西:

enter image description here

我尝试使用Mathf.Clamp,但它不能很好地工作。

谢谢!对不起我的英语。

1 个答案:

答案 0 :(得分:0)

我建议使用Physics Joints,更精确地使用ConfigurableJoint。你可以设定一个限制你的关节可以在每个轴上行进的距离(我用过一次做一些抽屉)。