我在使用一些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;
}
对于正在发生的事情或更好的解决方案的任何建议都将不胜感激。
答案 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;
}