我只是想用鼠标拖动来移动对象。对象是父对象的子对象。这就是代码中使用 localPosition 的原因。
Vector3 startPos;
Vector3 dist;
void OnMouseDown()
{
startPos = Camera.main.WorldToScreenPoint(transform.localPosition);
dist = transform.localPosition - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, startPos.z));
}
void OnMouseDrag()
{
Vector3 lastPos = new Vector3(Input.mousePosition.x, Input.mousePosition.y, startPos.z);
transform.localPosition = Camera.main.ScreenToWorldPoint(lastPos) + dist;
}
预期在 x&z 轴上移动对象,但在 x&y 上移动。
墨色风雨
相关分类