触摸在Unity中无法识别

时间:2016-05-12 08:15:20

标签: c# unity3d

我必须将我的乒乓球游戏从键盘使用转换为基于触摸的机制。然而,我完全陷入困境,试图找出Unity的触控机制。我已经通过互联网进行了搜索,每个人都以某种方式不断解决问题。从我收集的所有内容中,我认为应该起作用。这是我的更新方法,所以它不断检查这个。

    Touch t;

void Update() {
    if (Input.touchCount > 0) {
        print("touch seen");
        t = Input.GetTouch(0);
    }
}

无论我触摸屏幕多少次,都不会遇到if语句条件。我使用的是具有触摸屏的lenovo笔记本电脑,也许它正在点击我的触摸点?我似乎无法弄明白。如果我拿走if语句,我会得到一个ArrayIndexOutOfBounds异常。非常感谢任何帮助!

更新它注册为鼠标点击,我不能只允许这样做,因为我需要多次触摸输入。

1 个答案:

答案 0 :(得分:0)

您可以使用Input.touchSupported检查计算机是否支持触控。如果它返回true,请通过触摸Input.GetTouch(0)进行阅读。如果它返回false,则使用Input.GetMouseButtonDown来代替鼠标。如果您的计算机不支持触摸屏,触摸将无效。以下是有关如何执行此操作的完整代码:

void Update()
{
 if (Input.touchSupported)
 {
    Debug.Log("TOUCH IS SUPPORTED");
    if ((Input.touchCount > 0) && (Input.GetTouch(0).phase == TouchPhase.Began))
    {
        print("touched screen");
    }
 }
 else
 {
    Debug.Log("TOUCH IS NOT SUPPORTED");
    if (Input.GetMouseButtonDown(0))
    {
        print("clicked screen");
    }
 }
}