For various reasons I can not unload scene by name, since I will have several of the same scene loaded. How can I return the Scene object from LoadSceneAsync, so I can unload that specific scene later?
Scene loadedScene;
loadedScene = SceneManager.LoadSceneAsync (roomName, LoadSceneMode.Additive);
I’ve seemed to answer my own question, just needed a built in function.
public void LoadRoom(string roomName, Vector2 newRoomPosition) {
//SceneManager.sceneLoaded += SceneManager_sceneLoaded;
SceneManager.sceneLoaded += SceneManager_sceneLoaded;
SceneManager.LoadSceneAsync (roomName, LoadSceneMode.Additive);
}
void SceneManager_sceneLoaded (Scene scene, LoadSceneMode mode)
{
SceneManager.sceneLoaded += SceneManager_sceneLoaded;
}
Just a note: line 9 above actually re-adds the delegate (+=) when I think you intend to remove it (-=)…