如何在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秒,然后下一个按钮被创建并显示在屏幕上。有什么简单的方法吗?

如何在c#中两个语句的执行之间插入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");
    }
}