Unity使用Input.mousePosition移动对象

时间:2017-04-30 14:56:39

标签: c# unity3d

我有一个简单的桨,我试图使用鼠标沿X轴移动。目前它移动但相对于鼠标位置大幅下降。

我认为这是因为我的屏幕的一半是-7.5而另一半是7.5

我想知道是否有任何方法可以解决这个问题。从你的代码中可以看出,我乘以16,如果另一半不是负数,则为宽度。

我可以移动整个剧本以使其不是负片,所以我希望有一个功能

Vector3 paddlePos = new Vector3 (0f, this.transform.position.y , -0.25f);
float mousePosInBlocks = Input.mousePosition.x / Screen.width * 16;

paddlePos.x = Mathf.Clamp(mousePosInBlocks, -7.5f, 7.5f);

this.transform.position = paddlePos;

1 个答案:

答案 0 :(得分:1)

使用此代码 -

Vector3 paddlePos = new Vector3 (0f, this.transform.position.y , -0.25f);
float mousePosInBlocks = Input.mousePosition.x / Screen.width * 16;

paddlePos.x = Mathf.Clamp((mousePosInBlocks - 7.5f), -7.5f, 7.5f);

this.transform.position = paddlePos;

Mathf.clamp函数仅返回最小值和最大值范围内的值。虽然您需要使用mousePosInBlocks值来考虑负屏幕和正屏幕空间。