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);
     }
 }
Example #2
0
    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);
        }
    }