1

我想创建一个按钮,当您按下它时,将打开一个新按钮。我知道如何制作两个按钮,但是一旦单击,我就无法隐藏第一个按钮。

到目前为止,这是我的代码:

#pragma strict

function Start () 
{
}

function Update () 
{
}

var isButtonVisible  :  boolean  =  true;  

var buttonRectangle  :  Rect     =  Rect(100, 100, 100, 50);

function OnGUI ()
{
    var NewButton = GUI.Button(Rect (Screen.width / 2 - 75, Screen.height / 2 -25,150,50), "this is also a button");

    if ( isButtonVisible ) 
    {
        if ( GUI.Button(Rect (Screen.width / 2 - 75, Screen.height / 2 -25,150,50), "button") ) 
        {
            isButtonVisible = false;


            if ( isButtonVisible ) 
            {
                return NewButton;
            }
        }
    }
}

我是编程新手,所以这个问题可能有点不清楚。

4

2 回答 2

2

我同意“Happy Apple's”的解决方案,如果您想集成反向功能,您可以简单地更改代码,如下所示:

var isButtonVisible : boolean = true;
var buttonRectangle : Rect = Rect(100, 100, 100, 50);

function OnGUI ()

{

if(isButtonVisible)
{

    if(GUI.Button(Rect(Screen.width/2 - 75,Screen.height/2 - 25,150,50),"button"))
    {
        isButtonVisible = false;
    }

}
else
{

    if(GUI.Button(Rect(Screen.width/2 - 75,Screen.height/2 -25,150,50),"this is also a button"))
    {
        isButtonVisible = true;
    }

}

}

希望这会有所帮助。

于 2012-09-08T16:22:40.387 回答
1

这只是一个逻辑错误。首先,您在另一个 if (isButtonVisible) 括号内检查 if (isButtonVisible),这是多余的。其次,如果我们知道我们希望第二个按钮出现的条件(第一个按钮被点击)和所述按钮被点击的布尔标志(isButtonVisible == false),我们可以分支 isButtonVisible 条件以显示第二个按钮错误的。

假设您希望第一个按钮使另一个按钮出现并在单击时隐藏,这应该做您想要的(尽管它只会在逻辑上以一种方式流动,即第一个按钮将隐藏自己并显示第二个按钮,但不可逆)。所以你的原始代码非常接近。

var isButtonVisible  :  boolean  =  true;  

var buttonRectangle  :  Rect     =  Rect(100, 100, 100, 50);

function OnGUI ()
{
    if ( isButtonVisible ) 
    {
        if ( GUI.Button(Rect (Screen.width / 2 - 125, Screen.height / 2 -175,150,50), "button") ) 
        {
            isButtonVisible = false;
        }
    }
    else
    {
        var NewButton = GUI.Button(Rect (Screen.width / 2 - 75, Screen.height / 2 -25,150,50), "this is also a button");
    }
}

诚然,有几种更好的方法可以实现这一点,但我希望它能解决你的问题。

于 2012-09-07T04:27:19.537 回答