无法让 Invoke() 工作


//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()呼叫

相关内容

  • 没有找到相关文章

最新更新