首页 > 解决方案 > Unity 触控在一秒钟内至少工作 5-6 次

问题描述

我正在尝试在我当前的 Unity 项目中实现触摸控制。我目前正在尝试执行这行代码,但我发现 fps 已显着下降,并且它执行的有关触摸控件的行超出了我的预期。

for(int i=0;i<Input.touchCount;i++)
{
   Debug.log("Touched");
}

我对此感到好奇,有没有更有效的方法可以从用户那里获得 IOS 和 Android 的触摸输入,谢谢。

标签: androidunity3dtouch

解决方案


我想你在你的更新函数中使用了这个。你需要这样做:

void Update()
{
    if (Input.touchCount > 0)
    {
        Touch touch = Input.GetTouch(0);

        if (touch.phase == TouchPhase.Began)
        {
            Debug.Log("Touched");
        }
    }
}

这样,它只会在开始时被调用一次。

你这样做的方式是“当屏幕被触摸时,在日志中打印'触摸'”。

如果你想用很多手指做,你可以做

void Update()
{
    if (Input.touchCount > 0)
    {
        int countTouches = Input.touchCount;
        for (int i = 0; i < countTouches; i++)
        {
            if (Input.GetTouch(i).phase == TouchPhase.Began)
            {
                Debug.Log("Touched");
            }
        }
    }
}

推荐阅读