使用Invoke

时间:2018-05-13 06:20:01

标签: c# unity3d

我有两个脚本,其中一个重新启动场景,另一个是倒数计时器,而不是调用第一个脚本中的重启场景方法。但是,它没有重新启动,我不明白为什么即使没有错误。

重启场景的第一个脚本:

using UnityEngine;
using UnityEngine.SceneManagement;

public class LevelComplete : MonoBehaviour
{
    public void LoadNextLevel()
    {
        SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);
    }

    public void Exit()
    {
        Application.Quit();
        Debug.Log("Exit");
    }

    public void Restart()
    {
        SceneManager.LoadScene(sceneBuildIndex: 1);
        Debug.Log("restart pressed");
    }
} 

倒数计时器结束后应该重启场景的第二个脚本:

using UnityEngine;
using UnityEngine.UI;

public class TimerCounDown : MonoBehaviour {

    [SerializeField] private Text uiText;

    [SerializeField] private float MainTimer;

    private float timer;
    private string canCount;
    private bool doneOnece;
    public float restartDelay = 5f;
    private string methName;

    private void Update()
    {
        timer -= Time.deltaTime; 
        Debug.Log((MainTimer - (-timer)));

        if ((MainTimer - (-timer)) >0)
        {
            canCount = (MainTimer - (-timer)).ToString("F1") + " Seconds until end";
            uiText.text = canCount;
        }
        else
        {
            uiText.text = "level complete lefel will be restarted in 5 seconds";
            // GetComponent<LevelComplete>();
            // Invoke("Restart", restartDelay);
            // GetComponent<LevelComplete>().Restart();
        }
    }
}

我正在尝试使用Invoke重新启动它,但它不能将GetComponent<LevelComplete>().Restart()作为参数,所以我决定只是简单地触发此方法,但它不起作用。我不明白为什么以及如何解决它。如果您知道问题所在及解决方法,请帮助我。

0 个答案:

没有答案