我修改了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触控板上控制非常不稳定。(例如,球的运动方向通常与滑动方向完全相反)
谁能告诉我,如果有什么我可以做,使控制更顺畅?
这对我有用:
if(Input.GetAxis("Mouse Y") != 0)
{
scrollValue.value += ((Input.mousePosition.y - 720) / 720);
}
它通过检查鼠标Y轴来检查用户是否试图滚动触摸板,但随后将滚动条的值增加到相对于触摸板总是重置的默认起始位置(Y =720)的鼠标位置,而不是使用鼠标Y轴值。如果你想水平滚动,你需要使用x而不是y,并将720更改为1280,因为这是触摸板使用的默认x位置。
在《GearVR》中触控板作为鼠标是一种误导。当你有鼠标时,光标位置(Input.position
)从一个地方移动到另一个地方——但在《GearVR》中,鼠标在每次鼠标/触点时都传送到屏幕的中心。你必须使用每次鼠标向下的相对位置,并为你想要的这种行为添加它们。
哦,据我所知,没有办法检查触摸板的哪个部分被用户触摸-它总是注册为中心,进一步的移动是相对的。