如何在c#中两个语句的执行之间插入2秒的时间间隔
本文关键字:之间 执行 插入 2秒 时间 语句 两个 | 更新日期: 2023-09-27 18:11:05
我正在使用Unity创建一个简单的2D游戏。在我的c#脚本中,我想在两个连续的语句之间插入2秒的间隔。
void OnGUI()
{
GUI.Button (new Rect(400,40,45,45),"text1");
// time gap statement
GUI.Button (new Rect(800,40,45,45),"text1");
}
这意味着我想要一个按钮被创建和显示,之后等待2秒,然后下一个按钮被创建并显示在屏幕上。有什么简单的方法吗?
您可以使用协程来执行延迟,但这并不合适,因为您是在OnGUI中显示它。
试试这样写:
public float secondButtonDelay = 2.0f; // time in seconds for a delay
bool isShowingButtons = false;
float showTime;
void Start()
{
ShowButtons(); // remove this if you don't want the buttons to show on start
}
void ShowButtons()
{
isShowingButtons = true;
showTime = Time.time;
}
void OnGUI()
{
if (isShowingButtons)
{
GUI.Button (new Rect(400,40,45,45),"text1");
if (showTime + secondButtonDelay >= Time.time)
{
GUI.Button (new Rect(800,40,45,45),"text1");
}
}
}
OnGUI
大约每帧执行一次来绘制用户界面,所以你不能使用这样的延迟。相反,根据某些为真的条件有条件地绘制第二个元素,例如
void OnGUI()
{
GUI.Button (new Rect(400,40,45,45),"text1");
if (Time.time > 2) {
GUI.Button (new Rect(800,40,45,45),"text1");
}
}