【发布时间】:2023-03-08 01:31:01
【问题描述】:
当我单击屏幕上的任意位置时,我希望能够在 x 轴上移动我的对象,类似于我的鼠标位置。这样我就可以拖动对象,而不是跳转到点击位置只是为了跟随移动。
所以我制作了两个脚本。在第一个脚本中,问题是对象直接跳转到我单击的位置。第二个脚本工作正常,但单击后,对象总是从我可以拖动它的同一位置开始。
//1st script
public Vector3 screenPoint;
private float? mousePoint;
private float mousePoint2;
private void Update()
{
if (Input.GetMouseButtonDown(0))
{
mousePoint = Input.mousePosition.x;
mousePoint2 = Input.mousePosition.x;
screenPoint = Camera.main.WorldToScreenPoint(transform.position);
}
else if (Input.GetMouseButtonUp(0))
mousePoint = null;
if (mousePoint != null)
{
Vector3 curScreenPoint = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z));
transform.position = new Vector3(curScreenPoint.x, transform.position.y, transform.position.z);
}
}
}
//2nd script
private float difference;
private float? mousePoint;
private float mouseDistance1, mouseDistance2;
private void Update()
{
if (Input.GetMouseButtonDown(0))
{
mousePoint = Input.mousePosition.x;
mouseDistance1 = Input.mousePosition.x;
}
else if (Input.GetMouseButtonUp(0))
mousePoint = null;
if (mousePoint != null)
{
float mouseDistance2 = Input.mousePosition.x;
difference = mouseDistance2 - mouseDistance1;
transform.position = new Vector3((transform.position.x + difference) / 188, transform.position.y, transform.position.z);
}
}
}
【问题讨论】: