#c_sharp #unity3d
До версии 5.3 я мог спокойно написать: Application.LoadLevel(Application.loadedLevel); и загрузить уровень по имени или индексу. Но теперь использовать этот способ не работает, пишет ошибку: UnityEngine.Application.LoadLevel(int) is obsolete: `Use SceneManager.LoadScene' Что это за менеджер сцен такой? Как теперь получить, например, текущую сцену и загрузить её?
Ответы
Ответ 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 — получает информацию об активной сцене, в том числе её имя (список переменных сцены: тут). Ну и еще небольшая кучка разных методов.
Комментариев нет:
Отправить комментарий