【问题标题】:How to keep track of more than 3 fingers in Unity?如何在 Unity 中跟踪超过 3 个手指?
【发布时间】:2019-07-21 21:57:57
【问题描述】:

我的手机游戏有时需要用 2 根手指拖动一个对象,同时用另外 2 根手指使用相机进行缩放,Unity 的默认触摸输入并不喜欢这点。..

我尝试使用 Touch.fingerid 跟踪每个手指,但每次屏幕上超过 2 个手指时它都会发疯。
我也想尝试 TouchScript,但找不到任何关于我想要的示例

这是我尝试编写的代码,以使用 Unity 的默认触摸输入(每次超过 2 个手指时都会中断)跟踪手指 ID

int n = 0;
int[] cmtBackup = cameraMovementTouchs;
Touch[] allTouches = InputHelper.GetTouches().ToArray();
Touch[] tempTouches = new Touch[cameraMovementTouchs.Length];

for (int y = 0; y < cameraMovementTouchs.Length; y++)
{
    for (int i = 0; i < allTouches.Length; i++)
    {
        if (allTouches[i].fingerId == cameraMovementTouchs[y]) 
        { 
            tempTouches[y] = allTouches[i]; 
        }
    }
}

for (int i = 0; i < cameraMovementTouchs.Length; i++)
{
    if (tempTouches[i].phase != TouchPhase.Ended)
    {
        cmtBackup[n] = cameraMovementTouchs[i];
        n++;
    }

}

cameraMovementTouchs = new int[n];
touches = new Touch[n];

for (int i = 0; i < n; i++) 
{ 
    cameraMovementTouchs[i] = cmtBackup[i]; 
    touches[i] = tempTouches[i]; 
}

【问题讨论】:

  • 您确定您的设备支持多于 3 个手指吗?我知道我的平板电脑最多只能使用五个
  • 是的,我在另一个应用程序中获得了多达 10 个手指
  • 编辑:我的手机最新更新启用了“屏幕上的三指截屏”功能,该功能将触摸输入限制为 3.. 抱歉!
  • 这就是为什么移除物理按钮是一个可怕的举动。谢谢[手机制造商]!不妨用那个回答你自己的问题! :)

标签: c# unity3d multi-touch


【解决方案1】:

由于我手机的“屏幕三指截屏”功能,我的手机限制了触摸输入,所以我在这里发布的脚本可以正常工作!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-20
    • 2019-10-25
    • 2022-11-02
    • 1970-01-01
    相关资源
    最近更新 更多