代码中的计时器

Timer within code

在我的代码中,我想实现一个定时器,让死亡在初始化前等待 2 秒。

void OnCollisionEnter2D(Collision2D other)
{
    Die();
}

void Die()
{
    Application.LoadLevel(Application.loadedLevel);
}

死亡是瞬间的,我希望它在初始化前等待 2 秒。

有什么想法吗?

在某处用 2000 初始化一个计时器并定义一个处理程序,如下所示:

//...
    Timer tmr = new Timer();
    tmr.Interval = 2000; // 20 seconds
    tmr.Tick += timerHandler;
    tmr.Start(); // The countdown is launched!
//...
private void timerHandler(object sender, EventArgs e) {
    //handle death
}
//...

如果你只是想让它在两秒后发生,你可以试试这个 -

void OnCollisionEnter2D(Collision2D other)
{
    Invoke ("Die", 2.0f);
}

void Die()
{
    Application.LoadLevel(Application.loadedLevel);
}

试试这个:

void OnCollisionEnter2D(Collision2D other)
{
    Thread Dying = new Thread(()=>Die());
    Dying.Start(); //start a death in new thread so can do other stuff in main thread
}

void Die()
{
    Thread.Sleep(2000); //wait for 2 seconds
    Application.LoadLevel(Application.loadedLevel);
}