【发布时间】: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