Unity3d获取鼠标输入轴

时间:2015-06-08 16:08:46

标签: c# unity3d mouse

我想通过鼠标在-20°和+ 20°之间移动来旋转GameObject。

我知道有可能获得平滑的输入 Input.GetAxis("Horizontal");Input.GetAxis("Vertical");返回-11之间的浮点值

如果有类似的东西会很好 Input.GetMouseAxis("Horizontal");Input.GetMouseAxis("Horizontal");

但我的输出不应受键盘的影响。 对不起,我对Unity及其API没有多少经验。

1 个答案:

答案 0 :(得分:1)

  

鼠标在屏幕分辨率中“捕获”统一或我应该怎样   将鼠标位置缩放到介于-1和1之间的值?

在这种情况下,“normalizedSpeed”将成为您的目标

public float mouseDistance;
public Vector2 mouseDown = -Vector2.one;

public float normalizedSpeed;

public void Update()
{
   if(Input.GetMouseButtonDown(0))
      mouseDown = Input.MousePosition();

   if(Input.GetMouseButtonUp(0))
      mouseDown = -Vector2.one;

   if(Input.GetMouseButton(0))
      normalizedSpeed = mouseDown != -Vector2.one ?
      Mathf.Clamp((mouseDown - Input.MousePosition()).sqrMagnitude, 0, (mouseDistance * mouseDistance)) / (mouseDistance * mouseDistance)
      : 0;
}

我使用sqrMagnitude而不是distance,因为distance()中的sqr根调用占用了大量内存,因此比较平方距离与其他距离更快

另外请记住,我将其视为伪代码,因此总体思路是我想要的,我会让你在语法上对实现负责;)