【发布时间】:2018-11-12 02:38:21
【问题描述】:
我正在制作 2D 游戏,想在玩家的所有生命耗尽后造成大约 3 秒的延迟。我试图在场景重新开始之前实现 Coroutine 方法,但它不起作用。 每次我的玩家掉下悬崖并重生回到它的位置时,我已经实现了 Coroutine 方法。它就像一个魅力。
public void Respawner()
{
StartCoroutine("RespawnCoroutine");
}
// Coroutine Delay of 2 sec for each time player Respawn
public IEnumerator RespawnCoroutine()
{
classobj.gameObject.SetActive(false);
yield return new WaitForSeconds(respawnDelaySec);
classobj.transform.position = classobj.respawnPoint;
classobj.gameObject.SetActive(true);
}
public void ReduceLives()
{
if (lives <= 3 && lives >= 2)
{
lives--;
live_text.text = "Remaining Live " + lives;
}
else
{
StartCoroutine("RestartScene1");
}
}
public IEnumerable RestartScene1()
{
yield return new WaitForSeconds(RestartSceneDelaySec);
SceneManager.LoadScene("demo2");
}
控制台窗口没有错误,但SceneManager.LoadScene("demo2");永远不会被调用,玩家每次在我死后和剩余 1 条生命后都会重生
【问题讨论】: