Загрузить меню через SceneManager - PullRequest
0 голосов
/ 03 апреля 2019

Я хотел бы знать, является ли хорошей или плохой идеей загрузить главное меню, опции и другие графические элементы через асинхронный метод SceneManager (добавка) в мою игру (Unity3D).

Идея заключается в том, что игре может не потребоваться так много памяти, если я загружу весь графический интерфейс (главное меню, опции, выбор уровня, достижения и т. Д.) Асинхронно (добавочно) в моей игре.

Это код, который я нашел, но он не работает:

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);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...