繁体   English   中英

Unity - Gui 按钮问题 (Android)

[英]Unity - Gui Button issues (Android)

我是 Unity 的新手,我正在为 android 创建我的第一个游戏,作为一个游戏。 我有这个游戏,你可以通过按一个按钮来使用提升。 玩家可以在此过程中获得多个提升。

目前,我正在使用此代码来使用提升:

public void OnGUI()
     {
         if (GUI.RepeatButton(new Rect(20, Screen.height - 150, Screen.width/10, Screen.width/10), boostButtonIcon))
         {
             pressedButton = true;
             //do boost stuff

         }
         else
         {
             pressedButton = false;
         }
     }

哪个工作得很好,除非我在手机上测试它,并且我收集了 4 个提升,所有的提升都将一次性使用。

我也尝试过 GUI.Button 而不是 GUI.RepeatButton,但如果我使用它,则没有任何效果。

我做错了什么还是有更好的方法?

这很正常,因为每帧都会调用OnGUI 您应该检查最后一个值是否为真,这意味着用户没有按下按钮,只是按住了按钮。 尝试这个:

if (GUI.RepeatButton(new Rect(20, Screen.height - 150, Screen.width/10, Screen.width/10), boostButtonIcon))
{
     if (!pressedButton)
     {
         //do boost stuff
     }
     else pressedButton = true;
}

希望我有所帮助!

我找到了一次性使用所有提升的原因,我使用的是 RepeatButton 而不是 Button。 尽管一开始这不起作用,但我将其与 (&& boosts > 0) 结合使用,现在可以完美运行:)

    public void OnGUI() 
    {
                if (GUI.Button(new Rect(20, Screen.height - 150, Screen.width/10, Screen.width/10), boostButtonIcon) && boosts > 0)
                {
                    useBoostSound.Play();   
                    rigidbody.AddForce(boostVelocity, ForceMode.VelocityChange);    
                    boosts -=1;
                } 
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM