C# 如何获得GUI按钮来执行函数?

C# 如何获得GUI按钮来执行函数?,c#,unity3d,C#,Unity3d,我正在做我的游戏设计决赛,我需要点击按钮激活攻击。这是我们第一次单飞,所以我对Unity API很不确定 以下是我目前的尝试: void OnGUI(){ if (GUI.Button(new Rect(100, 800, 50, 50), "A")) BladeStrike(); } void BladeStrike(){ if (STUN == 0) { float timeRemaining = 20f;

我正在做我的游戏设计决赛,我需要点击按钮激活攻击。这是我们第一次单飞,所以我对Unity API很不确定

以下是我目前的尝试:

    void OnGUI(){
    if (GUI.Button(new Rect(100, 800, 50, 50), "A"))
        BladeStrike();  
}
    void BladeStrike(){
    if (STUN == 0) {
        float timeRemaining = 20f;
        }
}
这只是让一个概念发挥作用,浮动的变化只是为了看看按钮点击是否起作用。嗯,按钮显示得很好,按钮咔嗒一声,什么也没发生

默认情况下,STUN设置为0,并且还没有实现任何可能更改它的代码,我已经尝试过对其进行注释,没有任何区别


这看起来很简单,这就是为什么它如此令人沮丧

当我试图更改一个已经存在的变量时,我将变量表示为我正在创建它。解决办法很简单:

   void OnGUI(){
if (GUI.Button(new Rect(100, 800, 50, 50), "A"))
    BladeStrike();  
}
    void BladeStrike(){
if (STUN == 0) {
    timeRemaining = 20f;
    }

}

您是说它永远不会到达
float timeRemaining=20f
行吗?如果是这样的话,净效果无论如何都是“没有”,因为您只需初始化一个局部变量。您的期望是什么?timeRemaining变量作为计时器的一部分在脚本的其他地方使用,如果调用,它会立即将计时器设置回20秒,这样我就可以看到按钮是否工作。我注意到,我不应该把浮子放在那里,就像我在创造它一样。。。这是第一件事。。。编辑:不,不,就是这样。现在可以了。说出来帮助我认识到了错误。谢谢使用,在
BladeStike()
中放置一个断点,当您在游戏中单击按钮时,查看它是否在调试器中停止。我不明白为什么它不会是,这可能是一个更好的测试方法。我在这里被自己的两只脚绊倒了!没问题,先生。祝你平安