c# - 如何在 Unity 中阻止多点触控跳转

标签 c# unity3d multi-touch gameobject

我的问题是我通过触摸控制 Y 轴上的一个对象,但是当我在屏幕上多点触摸并撤回第一次触摸时,游戏对象从第一次触摸位置跳到第二次触摸位置。

我希望即使玩家撤回了第一次触摸,对象的移动仍然像第一次触摸一样继续。

我该如何解决?

我的代码:

void Update () {

        if (die == true)
            return;
        if(Input.GetMouseButtonUp(0)){
            point = transform.position;
            click = false;
        }
        if (Input.GetMouseButton(0)) {
            ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position); 
            last = ray.GetPoint(1);
            if(click==false){
                click=true;
                first = last;
            }
            transform.position  = new Vector2(0, point.y + last.y -  first.y );
        }

    }

最佳答案

正如 SteakOverlow 所提到的,如果您使用特定于触摸的代码,您可以使用更多有用的方法。

当发生触摸时,您可以使用 输入.GetTouch(0) 获得 Touch 结构。这个结构体包含了很多关于触摸的有用信息。比如fingerID,让你知道用的是哪个手指,phase,让你知道手指当前处于哪个触摸状态。 如果该阶段“结束”,那么您可以存储手指的最新位置,然后让下一个手指继续操作,并使用从最后一个手指到新手指的偏移量。

关于c# - 如何在 Unity 中阻止多点触控跳转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29809623/

相关文章:

c# - 如何将字符串传递给 UWP 应用程序并从 Windows 窗体应用程序启动它

c# - 如何从 web api Controller 返回文件?

c# - 在 WPF 中,如何在另一个线程(另一个调度程序)上设置窗口的窗口所有者

unity3d - 使用动画师运行微调器的平滑连续旋转动画

c# - 默认情况下,WPF 自定义用户控件是否已启用多点触控操作

ios - 新的 iPhone 6 和 6 Plus 支持多少个同时多点触控?

c# - 为什么需要将元素不断添加到已计算渲染发生的 GeometryModel3D 属性集合中?

非 XML 中的 C# 文档

支持设备中的 Android 多点触控

unity3d - 清理现有的Unity项目并将其迁移到新的一台或另一台PC中