Как загрузить новый уровень в Unity 5.3+?

549
01 января 2017, 17:19

До версии 5.3 я мог спокойно написать:

Application.LoadLevel(Application.loadedLevel);

и загрузить уровень по имени или индексу.

Но теперь использовать этот способ не работает, пишет ошибку:

UnityEngine.Application.LoadLevel(int) is obsolete: `Use SceneManager.LoadScene'

Что это за менеджер сцен такой? Как теперь получить, например, текущую сцену и загрузить её?

Answer 1

Юнити развивается и что-то переделывается, улучшается. Теперь за загрузку уровней (сцен) отвечает как раз логичный SceneManager, а не аж целое приложение (Application).

Менеджер теперь в своем пространстве имен. Подключается:

using UnityEngine.SceneManagement;

Пример использования:

using UnityEngine.SceneManagement;
public class Example
{
    public void ReloadCurrentScene()
    {
        // Получаем имя текущей сцены
        string sceneName = SceneManager.GetActiveScene().name;    
        // Загружаем её саму родимую
        SceneManager.LoadScene(sceneName, LoadSceneMode.Single);
    }
}

Т.е. SceneManager.LoadScene теперь загружает сцену по имени или по индексу, SceneManager.GetActiveScene — получает информацию об активной сцене, в том числе её имя (список переменных сцены: тут). Ну и еще небольшая кучка разных методов.

READ ALSO
Telegram Bot c# CallbackQuery

Telegram Bot c# CallbackQuery

Здравствуйте! Уже успел сломать голову с TelegramBot

2229
Как правильно создать типизированный DataSet?

Как правильно создать типизированный DataSet?

Типизированный DataSet- это DataSet в котором заведомо известны все DataTable и обращаться к ним можно по имениВ свою очередь DataTable тоже известны и можно...

413
Как определить размер структуры ?C#

Как определить размер структуры ?C#

Всем доброго времени суток помогите пожалуйста определить размер структуры в C#, есть некая структура на C++ :

563
“Не удалось загрузить файл или сборку” VkNet.dll

“Не удалось загрузить файл или сборку” VkNet.dll

Необработанное исключение типа "SystemIO

717