【问题标题】:How to Block Multi-Touch Jumps in Unity如何在 Unity 中阻止多点触控跳转
【发布时间】:2015-04-22 21:55:30
【问题描述】:

我的问题是我通过触摸控制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 );
        }

    }

【问题讨论】:

  • 您的代码甚至不是多点触控。要使用多点触控,您应该使用 Input.touches
  • 我使用 touchCount 而不是 GetMouseButton(0) 但结果没有改变

标签: c# unity3d multi-touch gameobject


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2012-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-05
    • 1970-01-01
    相关资源
    最近更新 更多