触摸板作为鼠标输入控件

时间:2015-08-30 09:26:49

标签: c# android unity3d oculus gear-vr

我修改了Roll-a-Ball tutorial以通过改变这些行来取代触摸板输入而不是控制器输入:

float moveHorizontal = Input.GetAxis ("Horizontal");
float moveVertical = Input.GetAxis ("Vertical");

到此:

float moveHorizontal = Input.GetAxis ("Mouse X");
float moveVertical = Input.GetAxis ("Mouse Y");

这完全适用于我的Macbook触控板,控制非常流畅,但在Gear VR触控板上控制非常不稳定。 (例如,球通常与滑动完全相反的方向移动)

有人能告诉我是否还有别的办法可以让控制更顺畅?

2 个答案:

答案 0 :(得分:2)

这对我有用:

if(Input.GetAxis("Mouse Y") != 0)
  {
      scrollValue.value += ((Input.mousePosition.y - 720) / 720);
  }

它检查用户是否正在尝试通过检查鼠标Y轴来滚动触摸板,然后将滚动条值相对于触摸板始终重置为的默认起始位置(即y = 720)的鼠标位置递增使用鼠标Y轴值。如果您尝试水平滚动,则需要使用x而不是y并将720更改为1280,因为这是触摸板使用的默认x位置。

答案 1 :(得分:1)

作为GearVR统一鼠标的触摸板是误导性的。当你有一个鼠标时,光标位置(Input.position)从一个地方移动到另一个地方 - 但是在GearVR中,鼠标在每个鼠标/触地上传送到屏幕中心。你必须使用每个mousedown的相对位置,并为你想要的这种行为添加它们。

哦,据我所知,没有办法检查用户触摸的触摸板的哪个部分 - 它总是记录为中心,进一步的移动是相对的。