【问题标题】:How to create a button that does not respond to multitouch in Unity for iOS?如何在 Unity for iOS 中创建一个不响应多点触控的按钮?
【发布时间】:2019-02-05 20:40:24
【问题描述】:

我有一个问题。我正在 Unity 中创建一个 iOS 游戏,并且我有一个标准的 UI 按钮,玩家应该尽可能快地点击它。虽然当玩家用 2 根手指同时点击按钮时,它会注册为两次点击……用 3 根手指点击 3 次,依此类推。我怎样才能让按钮只注册一次点击,即使玩家同时用 3 个手指点击?

【问题讨论】:

  • 您目前如何检测到按钮的点击?
  • @Programmer 我只是在画布中有一个 UI 按钮。在层次结构中:右键单击 -> UI -> 按钮。然后按钮脚本有一个 OnClick(),它调用按钮游戏对象上另一个脚本中的方法。
  • 如果在按钮上同时按下两次触摸,它应该算一次还是根本不算?如果一个手指已经在按钮上但没有松开,然后另一根手指用于按下,那应该算作按下吗?

标签: ios user-interface unity3d


【解决方案1】:

我所做的技巧是创建一个透明图像对象并将其放置在我的按钮 UI 下方,然后将我的手势脚本附加到该图像,希望它有所帮助

【讨论】:

    【解决方案2】:

    如果你不使用触摸阶段,你可以使用一个变量来避免多次触摸

    如果检查 mousedown:

        if(Input.GetMouseButtonDown(0)&& !pressed){
           pressed =true
           //Do if pressed
        } 
        if(Input.GetMouseButtonUp(0)){
            pressed =false
        }
    

    如果检查触摸阶段

         if (Input.GetTouch(0).phase == TouchPhase.Began){//This will only call your 1st touch when it begins 
         //Do Your thing 
         }
    

    如果使用 onMouseDown

      onMouseDown(){
        if(pressed){return;}
        pressed=true;
      }
      onMouseUp(){
      pressed =false;
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-22
      • 1970-01-01
      • 2023-01-14
      • 1970-01-01
      • 2014-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多