繁体   English   中英

无法使Invoke()正常工作

[英]Can't get Invoke() to work

//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()调用即可Invoke("Restart", RestartDelay);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM