C# Unity使用Input.mousePosition移动对象

C# Unity使用Input.mousePosition移动对象,c#,unity3d,C#,Unity3d,我有一个简单的桨,我试图用鼠标沿X轴移动。当前,它会移动,但相对于鼠标所在的位置,它的移动幅度很大 我想这是因为我的屏幕一半是-7.5,另一半是7.5 我想知道是否有任何方法可以纠正这个问题。正如你从我的代码中看到的,我乘以16,如果另一半不是负数,这就是宽度 我可以移动整个剧本,使它不是负面的,所以我希望有一个功能 Vector3 paddlePos = new Vector3 (0f, this.transform.position.y , -0.25f); float mousePosIn

我有一个简单的桨,我试图用鼠标沿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;
使用此代码-

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函数仅返回最小值和最大值范围内的值。虽然你需要MouthPosiBasic值来考虑负值和正屏幕空间。< /P>这已经修复了位置问题,但是现在又引起了一个新的问题,因为我的桨现在可以从屏幕上拖动了。尝试将值16变为15=7.5 +7.5甚至不能编译:浮标MouthPosiBuffs=输入。改成15只。我把15解释为7.5+7.5=15:不,球拍仍然可以从屏幕上拖动