我在运行时在我的游戏中显示文本一秒钟时遇到问题,所以我想知道是否可以在运行时添加或删除 GUI 标签?
问问题
16235 次
2 回答
2
你的意思是这样的吗?
void OnGUI() {
if (textShouldBeShown) {
GUI.Label(new Rect(10f, 10f, 100f, 50f), "MyText");
}
}
于 2013-10-21T12:15:08.780 回答
1
GUI 组件绘制在每一帧上。OnGUI() 函数与 Update() 函数类似,但与 Update() 函数不同的是,可以在其中调用 GUI 组件。
您可以将 OnGUI 视为一个循环。它将按顺序调用在其中声明的 GUI 组件,然后每帧重新执行一遍。因此,如果您连接到此循环并阻止某些组件在运行时被调用,那么这些组件将不会在下一帧被渲染。
这里有一组函数可以让你在指定的时间做到这一点:
private bool guiIsOn = true;
private void TurnOffGUIInSeconds(int seconds)
{
StartCoroutine(_TurnOffGUIInSeconds(seconds));
}
private IEnumerator _TurnOffGUIInSeconds(int seconds)
{
yield return new WaitForSeconds(seconds);
guiIsOn = false;
}
void OnGUI()
{
if(guiIsOn)
{
GUI.Label(new Rect(5,5,5,5), "Label text");
}
}
于 2013-10-21T20:51:28.110 回答