由于游戏对象“场景加载器”处于非活动状态,因此无法启动协程

时间:2018-11-23 14:29:34

标签: unity3d coroutine scene-manager

我已经在互联网上搜索过这个link和这个link,但是没有找到我现在遇到的具体问题。

我有一个带有2个按钮的主场景,其中每个按钮应打开其他场景(按钮1 =>场景1,按钮2 =>场景2),在每个场景中,我都有一个后退按钮,应返回到主要场景。

我设法成功完成了该操作,但是当我使用Coroutine时,在加载下一个场景时可以有2秒的延迟,当我单击“返回主场景”按钮时,出现以下错误:

Coroutine couldn't be started because the the game object 'Scene Loader' is inactive!

这是我的代码:

public class SceneLoader : MonoBehaviour {

    private bool check = true;

    public void LoadNextScene(int numberOfScene)
    {  
        StartCoroutine(LoadAfterSeconds(numberOfScene));    
    }

    private IEnumerator LoadAfterSeconds(int numberOfScene)
    {
        while (check)
        {
            yield return new WaitForSeconds(2f);

            SceneManager.LoadScene(numberOfScene);
        }

    }

} 

当我在主屏幕中并单击按钮1或2转到其他场景时,它在2秒钟后按预期工作,但是当我单击“返回主场景”时它什么也没做,我收到游戏对象“场景加载程序”处于非活动状态的错误!

我知道我可以使用Invoke(),但我想了解自己做错了什么。

感谢您的帮助。

谢谢。

0 个答案:

没有答案