Unity3d - 触摸输入问题
Unity3d - Touch Input issue
我开发了一款游戏,需要用户通过一次触摸来绘制 link 多个对象。当前使用鼠标按钮作为此代码的触摸输入:
if(Input.GetButton("Fire1"))
{
mouseIsDown = true;
...//other codes
}
它在鼠标上工作得很好,但是当我为多点触控设备编译它时会出现问题。在多点触控设备中,如果您有 2 个手指向下,则中间点将作为输入。但是如果我已经触摸了一个物体然后用第二根手指向下触摸屏幕,它会弄乱我的游戏输入并给我带来严重的设计。
我想要的是将其限制为仅 1 次触摸。如果第二根手指接触到,请忽略它。我怎样才能做到这一点?
您正在使用 Input.GetButton。按钮不是触摸。你可能想看看 Input.GetTouch
如果您需要支持多种输入类型的设备,您可能需要考虑编写您自己的管理器脚本以将其抽象出来。
以下是您所需要的:
if ((Input.touchCount == 1) && (Input.GetTouch (0).phase == TouchPhase.Began)) {
mouseIsDown = true;
...//other codes
}
因为 Input.touchCount == 1
只有一根手指在屏幕上时才会触发
我会进行一些投票!
所以在你的 Update() 中我通常会这样做:
foreach (Touch touch in Input.touches)
{
// Get the touch id of the current touch if you're doing multi-touch.
int pointerID = touch.fingerId;
if (touch.phase == TouchPhase.Began)
{
// Do something off of a touch.
}
}
如果您正在寻找更多信息,请查看:
TouchPhases in Unity
我开发了一款游戏,需要用户通过一次触摸来绘制 link 多个对象。当前使用鼠标按钮作为此代码的触摸输入:
if(Input.GetButton("Fire1"))
{
mouseIsDown = true;
...//other codes
}
它在鼠标上工作得很好,但是当我为多点触控设备编译它时会出现问题。在多点触控设备中,如果您有 2 个手指向下,则中间点将作为输入。但是如果我已经触摸了一个物体然后用第二根手指向下触摸屏幕,它会弄乱我的游戏输入并给我带来严重的设计。
我想要的是将其限制为仅 1 次触摸。如果第二根手指接触到,请忽略它。我怎样才能做到这一点?
您正在使用 Input.GetButton。按钮不是触摸。你可能想看看 Input.GetTouch
如果您需要支持多种输入类型的设备,您可能需要考虑编写您自己的管理器脚本以将其抽象出来。
以下是您所需要的:
if ((Input.touchCount == 1) && (Input.GetTouch (0).phase == TouchPhase.Began)) {
mouseIsDown = true;
...//other codes
}
因为 Input.touchCount == 1
我会进行一些投票!
所以在你的 Update() 中我通常会这样做:
foreach (Touch touch in Input.touches)
{
// Get the touch id of the current touch if you're doing multi-touch.
int pointerID = touch.fingerId;
if (touch.phase == TouchPhase.Began)
{
// Do something off of a touch.
}
}
如果您正在寻找更多信息,请查看: TouchPhases in Unity