1

我修改了Roll-a-Ball 教程 ,通过更改以下几行来采用触摸板输入而不是控制器输入:

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 触控板上控制非常不稳定。(例如,球经常以与滑动完全相反的方向移动)

谁能告诉我是否还有其他方法可以使控制更顺畅?

4

2 回答 2

2

这对我有用:

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

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

于 2018-02-01T14:44:05.293 回答
1

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

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

于 2015-08-31T16:31:49.753 回答