В документации чтобы заработал OnSceneLoaded есть пример с OnEnable и OnDisable,
и непонятной строкой:
Код
SceneManager.sceneLoaded += OnSceneLoaded;
А что если у меня этот скрипт с DontDestroyOnLoad, то получается OnDisable не будет работать,
пока из игры не выйдешь?!
1) А не будет ли ничего страшного, если не будет использоваться эта строка после перезагрузки уровня?
Код
SceneManager.sceneLoaded -= OnSceneLoaded;
И что вообще эта строка делает? Не будет ли какой-то утечки без неё? Зачем там минус?!
2) Можно ли вообще убрать функцию OnDisable ?
И вот мой код скрипта:
Код
void Awake() {
DontDestroyOnLoad(gameObject);
}
void OnEnable()
{
SceneManager.sceneLoaded += OnSceneLoaded;
}
void OnDisable()
{
SceneManager.sceneLoaded -= OnSceneLoaded;
}
void OnSceneLoaded(Scene scene, LoadSceneMode mode) {
OnLevelLoaded();
}