2017-11-05 5 views
0

나는이 코드를 사용, 드래그 서랍을 만들려고 :어떻게 드래그 가능한 거리를 제한 할 수 있습니까?

는 어떻게 X의 드래그 범위를 제한 할 수 있습니다

 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; 

    } 
? 내가 이런 걸하고 싶지 않기 때문에 : 나는 Mathf.Clamp를 사용하려고

enter image description here

을하지만 잘 작동하지 않습니다.

감사합니다. 그리고 내 영어로 미안해.

+0

아직 조정할 필요가 있지만'Mathf.Clamp()'가'curPosition.x'를'worldPosition.x - 3.f' 사이에 고정시키고있는 것처럼 보이지 않을 것 같습니다. 및'worldPosition.x + 3.f'. 'Mathf.Clamp (gameObject.transform.position.x, gameObject.transform.position.x - 3.0F, gameObject.transform.position.x + 3.0F);':-)를 시도하십시오. – George

답변

0

Physics Joints을 사용하는 것이 좋습니다. 더 정확하게는 ConfigurableJoint입니다. 각 축에서 관절이 이동할 수있는 거리에 대한 제한을 설정할 수 있습니다 (서랍 작업을 한 번 사용했습니다).

관련 문제