public static void LoadNextLevel() { LevelSettings.LevelPreset nextLevel = null; if (HasNextLevel(out nextLevel)) { LoadLevel(nextLevel); } else { Debug.LogError("Next level is not available, current level name: " + CurrentLevel.LevelName); } }
public void Init(LevelSettings.LevelPreset levelPreset) { LevelPreset = levelPreset; var levelIsUnlocked = levelPreset.LevelIsUnlocked(); LevelButton.interactable = levelIsUnlocked; LockedLevelGO.SetActive(!levelIsUnlocked); LevelName.text = LevelPreset.LevelName; LevelBackGround.sprite = LevelPreset.ButtonLevelBackSprite; LevelButton.onClick.AddListener(LevelPreset.LoadLevel); }
public static bool HasNextLevel(out LevelSettings.LevelPreset nextLevel) { nextLevel = null; if (CurrentLevel == null) { return(false); } var levels = B.Levels.Levels; var levelIndex = levels.IndexOf(CurrentLevel); bool value = (levels.Count - 1) > levelIndex; if (value) { nextLevel = B.Levels.Levels[levelIndex + 1]; } return(value); }
public static void LoadLevel(LevelSettings.LevelPreset newLevel) { CurrentLevelIndex = SceneUtility.GetBuildIndexByScenePath(newLevel.LevelScenePath); if (CurrentLevelIndex == -1 || MainWorldSceneIndex == -1) { Debug.LogErrorFormat("Level {0} or Main Scene not found", newLevel.LevelName); return; } LoadingScreen.Show(); SceneManager.LoadScene(MainWorldSceneIndex); SceneManager.LoadScene(CurrentLevelIndex, LoadSceneMode.Additive); CurrentLevel = newLevel; if (CurrentLevel.MusicInLevel != null && CurrentLevel.MusicInLevel.Count > 0) { SoundController.Instance.SetMusicPlayList(CurrentLevel.MusicInLevel); } }