private IEnumerator LoadNewAdditiveLevel(int sceneIndex, HubDoor _hubDoor = null, Image loadingBarFillImage = null) { AsyncOperation asyncLoad = SceneManager.LoadSceneAsync(sceneIndex, LoadSceneMode.Additive); while (!asyncLoad.isDone) { if (loadingBarFillImage != null) { loadingBarFillImage.fillAmount = asyncLoad.progress; } yield return(null); } if (loadingBarFillImage != null) { loadingBarFillImage.fillAmount = 1; } LevelManager levelManager = FindObjectOfType <LevelManager> (); nextLevelSpawnPosition = levelManager.InitializeLevel(nextLevelSpawnPosition); Destroy(levelManager); if (_hubDoor == null) { hubDoor.SceneHasLoaded(); } else { _hubDoor.SceneHasLoaded(); } }
public void LoadNextLevel(HubDoor hubDoor) { if (activeSceneIndex + 1 < SceneManager.sceneCountInBuildSettings) { activeSceneIndex++; loadedSceneIndecies.Add(activeSceneIndex); StartCoroutine(LoadNewAdditiveLevel(activeSceneIndex, hubDoor)); if (activeSceneIndex > loadedData.numberOfLevelsUnlocked) { loadedData.numberOfLevelsUnlocked++; FindObjectOfType <MonitorUIManager> ().UnlockLevel(); SaveCurrentData(); } } }
//bool hasTouched = false; void Start() { //audioScript = audioHandler.GetComponent<CrossFadeControl>(); doorScript = hubDoor.GetComponent<HubDoor>(); }