C# 单位延迟的Application.LoadLevel()

C# 单位延迟的Application.LoadLevel(),c#,unity3d,C#,Unity3d,我的角色在游戏中死亡后,是否有可能延迟加载关卡?我正在使用以下代码: void Update () { if (health.currentVal <= 0) Die (); } void Die(){ Application.LoadLevel (Application.loadedLevel); } void更新(){ 如果(health.currentVal,您可以使用Invoke并等待5秒钟 Invoke("Die",5); 您还可以使用协同程序 IEnumera

我的角色在游戏中死亡后,是否有可能延迟加载关卡?我正在使用以下代码:

void Update () {
if (health.currentVal <= 0)
    Die ();
}
void Die(){
   Application.LoadLevel (Application.loadedLevel);
}
void更新(){

如果(health.currentVal,您可以使用Invoke并等待5秒钟

Invoke("Die",5);
您还可以使用协同程序

IEnumerator waitRestart()
{
    yield return new WaitForSeconds(5); //Wait for 5 secs
    Die();
}
然后用
start例程(waitRestart())调用它;

Invoke()
调用它。第二个参数是以秒为单位的时间延迟

void Update ()
{
    if (health.currentVal <= 0)
    {
        Invoke("Die", 3f);
    }      
}
void更新()
{

如果(health.currentVal)很好,工作正常。当我们等待重新开始游戏时,是否也可以冻结或禁用“玩家”对象的移动?新的问题是,当玩家“死亡”时,我仍然可以移动他@TomášTomHaverla yes.创建一个布尔变量并使用它来确定玩家何时死亡。例如,
bool isDead;
,然后在移动玩家之前,在移动代码中确保玩家没有死亡。您可以使用
if(!isDead){//将移动代码放在这里};
。the“!”意思是没有死。另外,在你调用
Invoke(“Die”,5);
之前,当玩家因执行
isDead=true;
而死亡时,make
isDead
应该是
true
。如果你仍然对此有疑问,创建新的问题,因为这是一个完全不同的问题。不要忘记接受这个答案,因为你已经找到了它。