// called first // Assign Data and events void OnEnable() { if (myCurrentData == null) { myCurrentData = Resources.Load <ISceneData>("Alex/SceneData/SceneDataObjects/" + SceneManager.GetActiveScene().name + "Data"); myCurrentData.SetupData(); } SceneManager.sceneLoaded += OnSceneLoaded; SceneManager.sceneUnloaded += OnSceneUnloaded; SceneManager.activeSceneChanged += ActiveSceneChanged; }
// Makes sure a scene is fully loaded before searching for data to assign void ChangeScene(string nextSceneName) { //SceneManager.UnloadSceneAsync(SceneManager.GetActiveScene()); //Debug.Log("Changing to new Scene"); Scene scene = SceneManager.GetSceneByName(myCurrentData.NextSceneName()); Debug.Log(myCurrentData.NextSceneName() + " : loading Data"); myCurrentData.levelCompleted.allowChange = 1; SceneManager.LoadScene(myCurrentData.NextSceneName()); myCurrentData = Resources.Load <ISceneData>("Alex/SceneData/SceneDataObjects/" + myCurrentData.NextSceneName() + "Data"); Debug.Log(myCurrentData.name + " Loaded"); myCurrentData.SetupData(); myNextSceneData = myCurrentData.NextSceneData; _changeScene = false; while (!scene.isLoaded) { return; } SceneManager.SetActiveScene(scene); }