//Tring to add a delay before game restarts
using UnityEngine;
using UnityEngine.SceneManagement;
public class GameManager : MonoBehaviour {
bool GameEnded = false;
public float RestartDelay = 4f;
public void CompleteLevel ()
{
Debug.Log("1!");
}
public void GameOver ()
{
if (GameEnded == false)
{
GameEnded = true;
Debug.Log("Game Over");
Invoke("Restart", RestartDelay);
Restart();
}
}
void Restart ()
{
SceneManager.LoadScene(SceneManager.GetActiveScene().name);
}
}
在一定延迟后使用Invoke
调用Restart()
,但随后直接调用Restart()
,这将加载下一个场景。
Invoke
的作用是允许您安排方法调用在特定时间后发生。您似乎将其用作一个功能,该函数将使进程等待一定时间,这是错误的。
只需在Invoke("Restart", RestartDelay);
后删除Restart()
呼叫