//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);
}
}
答案 0 :(得分:1)
您使用Invoke
在一定延迟后拨打Restart()
,然后直接拨打Restart()
,这将加载下一个场景。
Invoke
的作用是允许您安排在一定时间后发生的方法调用。您似乎正在使用它作为一个函数,它会使进程等待一段时间,这是错误的。
只需在Restart()
Invoke("Restart", RestartDelay);
来电