【问题标题】:Detecting Unity Button Being Held Down And Not Just Pressed [duplicate]检测 Unity 按钮被按下而不是被按下 [重复]
【发布时间】:2021-01-08 02:01:01
【问题描述】:

所以,我试图让我的统一游戏从使用键盘移动到使用屏幕上的 ui 按钮移动。我统一使用内置的 ui 按钮,将按钮链接到我要移动的对象,并让它触发脚本的一部分来移动对象。问题是它一开始只检测到按下按钮的输入,如何检测到按钮被按住?

【问题讨论】:

    标签: unity3d


    【解决方案1】:

    您可以通过检查按钮何时释放来检查按钮是否被按住

    首先给你的按钮添加事件触发组件,添加两个事件PointerDownPointerUp,然后在PointerDown上设置一个bool为true,在PointerUp上设置一个false,那个bool就是按钮是否被按住,例如:

     public class CheckHeldDown : Monobehaviour
     {
         public bool isHeldDown = false;
     
         public void onPress ()
         {
             isHeldDown = true;
             Debug.Log(isHeldDown);
         }
     
         public void onRelease ()
         {
             isHeldDown = false;
             Debug.Log(isHeldDown);
         }
     }
    

    【讨论】:

      【解决方案2】:

      如果您想在移动设备上构建您的游戏,您可以通过触摸次数来检测它。例如,这是我刚刚用来在赛车游戏中制作 Nitro 按钮的一些代码:

      public class NitroButton : MonoBehaviour
      {
          [HideInInspector]
          public bool pushed;
      
          public void Update()
          {
              if (Input.touchCount >= 2)
              {
                  pushed = true;
              }
              else
              {
                  pushed = false;
              }
          }
      }
      

      这也允许两个手指推动等。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-26
        • 2020-01-02
        • 1970-01-01
        • 2016-05-31
        相关资源
        最近更新 更多