Unityscript在函数之间传递布尔值

时间:2014-09-23 18:17:05

标签: unity3d unityscript

我在使用一些Unityscript时遇到了一些麻烦。

我想要做的是在触摸某些对象时出现GUI消息(然后在一段时间后消失)。我想我已经完成了它,但是这条消息会自动跳转。

我尝试的解决方案是让GUI消息的条件部分只允许它在布尔值为true时出现。然后在触摸对象时已经跳过的不同脚本中,布尔值设置为true,因此脚本可以运行,并将布尔值重置为false。

但是我得到了“你只能从OnGUI内部调用GUI函数。我不确定这意味着什么。

消息代码:

youdied.js
static var deathMessageShow : boolean = false;

function OnGUI() {
if(deathMessageShow == true){
    if(Time.time >= 5 )
        GUI.Box(Rect(200,300,275,150),"You Died");
    }
deathMessageShow = false;
}

其他代码(截断):

dead.js
function OnTriggerEnter()
{
//code that resets environment
youdied.deathMessageShow = true;
}

对于正在发生的事情或更好的解决方案的任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

以下代码将显示5秒钟的GUI消息,然后隐藏它:

youdied.js
static var deathMessageShow : boolean = false;

function OnGUI()
{
    if(deathMessageShow)
    {
        GUI.Box(Rect(200,300,275,150),"You Died");

        // call the function HideDeathMessage() after five seconds
        Invoke("HideDeathMessage", 5.0f);
    }
}

function HideDeathMessage()
{
    deathMessageShow = false;
}

其他代码:

dead.js
function OnTriggerEnter()
{
    //code that resets environment
    youdied.deathMessageShow = true;
}