未在任何游戏对象上检测到多点触控

Multi-Touch not detected on any gameobject

我制作了一个脚本并将其附加到主摄像头,但在游戏场景的任何地方都没有检测到多点触控。控制台在每一帧记录更新,但不记录输入触摸 anywhere.None 打印语句在 if 语句中运行。任何帮助将不胜感激。

void Update() {
        print("update");
        if (Input.touchCount > 0){
            print("touch detected");
            print(Input.touchCount);
            print(Input.touchCount.toString());
    }

}

如果您只需要单点触控,则使用 Input.GetMouseButtonDown。这将适用于所有平台。编辑器或设备。

您可以将其用作,

void Update()
{
    if (Input.GetMouseButtonDown(0))
    {
        Debug.Log("Screen touch detected");
    }

    if (Input.GetMouseButton(0))
    {
        Debug.Log("Screen touch and drag detected");
    }

    if (Input.GetMouseButtonUp(0))
    {
        Debug.Log("Screen touch lifted up");
    }
}

可触摸设备中不仅有一个"touch"字。有多种类型的触摸操作,例如单击、multi-touch、滑动、捏合等。

首先请删除更新中的打印功能,这是不必要的愚蠢行为。

对于单点触摸,(如Hamza所说)您可以使用Input.GetMouseButtonInput.GetTouch

如果你想计算multi-touch的次数,你的用法是正确的。尝试将脚本附加到场景中的另一个游戏对象。有关更多信息,请参见 Unity 官方页面上的 this 示例。