通过SceneManager加载菜单

时间:2019-04-03 16:42:36

标签: c# user-interface unity3d load

我想知道通过SceneManager的异步方法(添加)将主菜单,选项和其他GUI内容加载到我的游戏(Unity3D)中是个好主意。

背后的想法是,如果我在游戏中异步(添加)加载所有GUI(主菜单,选项,级别选择,成就等),则游戏可能不需要那么多内存。

这是我发现的一些代码,但它不起作用:

bool  transitionIsDone;  // set elsewhere when the camera finishes moving

IEnumerator loadNextScene()
{
    string name = "ALegitSceneName";
    AsyncOperation _async = new AsyncOperation();
    _async = SceneManager.LoadSceneAsync(name, LoadSceneMode.Additive);
    _async.allowSceneActivation = false;

    while(!transitionIsDone)
    {
        yield return null;
    }

    _async.allowSceneActivation = true;

    while (!_async.isDone) 
    {
        yield return null;
    }

    Scene nextScene = SceneManager.GetSceneByName(name);
    if (nextScene.IsValid()) 
    {
        SceneManager.SetActiveScene(nextScene);
        SceneManager.UnloadScene(SceneManager.GetActiveScene().name);
    }
}

0 个答案:

没有答案