我可以通过单一触摸在Unity中正常工作,完全没问题。
我无法为我的生活多点接触工作。我想用两个手指的手势模拟相同的输入和右键单击,通常捏缩放输入,我已经购买了简单的触摸但无济于事。
我尝试了轻松触摸的示例,他们也没有对多点触控输入作出反应。
我需要在编辑器中工作,因为它是一个由windows 10笔记本电脑/表面4驱动的大型触摸屏显示器的应用程序。
请帮忙。
答案 0 :(得分:0)
你必须伪造多点触控。对于我们的应用程序,我们需要在编辑器中为3d Viewer调试移动应用程序。
这不是一对一的移动设备,但足够接近。
private Vector3 previousPosition = Vector3.zero;
public void Update()
{
if(Input.GetMouseButtonDown(1))
{
OnTouchDown(Input.mousePosition);
this.previousPosition = Input.mousePosition;
return;
}
else if(Input.GetMouseButtonUp(1))
{
OnTouchEnd(Input.mousePosition);
return;
}
else if(Input.GetMouseButton(1))
{
Vector3 tempPosition = Input.mousePosition;
if(this.previousPosition != tempPosition) // could benefit better check
{
OnTouchDrag(tempPosition);
}
previousPosition = tempPosition;
return;
}
else if(Input.GetAxis ("Mouse ScrollWheel") != 0f)
{
float mag = Input.GetAxis ("Mouse ScrollWheel");
OnPinch(Vector2.zero, mag);
}
else if (Input.GetMouseButton(2))
{
Vector2 deltaPosition = new Vector2(Input.GetAxis ("Mouse X"), Input.GetAxis ("Mouse Y"));
OnPinch(deltaPosition, 0.0f);
}
}
在上面的代码中,您将拥有一个将信息传播给所有侦听器的InputManager。你可以从那里触发事件。
OnTouchDown,OnTouchDrag和OnTouchEnd转发触摸的当前位置,以便另一个控制器跟踪这些值并考虑位移。
OnPinch考虑触摸的位移和大小。在移动设备中,这可以在一个地方完成。在编辑器中,由于需要两种不同的方法(右键单击和鼠标滚轮),它发生在两个地方。当检测到一个时,另一个案例获得零值。