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