Страницы

Поиск по вопросам

четверг, 15 ноября 2018 г.

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

До версии 5.3 я мог спокойно написать:
Application.LoadLevel(Application.loadedLevel);
и загрузить уровень по имени или индексу.
Но теперь использовать этот способ не работает, пишет ошибку:
UnityEngine.Application.LoadLevel(int) is obsolete: `Use SceneManager.LoadScene'
Что это за менеджер сцен такой? Как теперь получить, например, текущую сцену и загрузить её?


Ответ

Юнити развивается и что-то переделывается, улучшается. Теперь за загрузку уровней (сцен) отвечает как раз логичный 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 — получает информацию об активной сцене, в том числе её имя (список переменных сцены: тут). Ну и еще небольшая кучка разных методов.

Комментариев нет:

Отправить комментарий