我想知道通过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);
}
}