我有一个Unity3D项目。这个项目有一个我创建的预制件(桌面),其中平面作为桌子的顶部。该平面具有盒状碰撞器和刚体。在桌面上,我有另一个物体。我只想在桌面上移动这个物体(X和Z轴)。该物体不应该被抬起超过桌面。我已经将以下代码附加到我的物体:
void OnMouseDown()
{
Debug.Log("mouse down");
screenPoint = Camera.main.WorldToScreenPoint(transform.position);
offset = transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z));
}
void OnMouseDrag()
{
Debug.Log("mouse drag");
Vector3 curScreenPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z);
Vector3 curPosition = Camera.main.ScreenToWorldPoint(curScreenPoint) + offset;
transform.position = curPosition;
}
这会移动物体的位置,但也会将物体移到桌面上方。有没有办法让物体留在桌面上呢?