Cargue nextLevel con un clic de button

¿Alguien puede ayudarme con este código?

Me gustaría pasar al siguiente nivel haciendo clic en un button: ejemplo, mi nombre de nivel es L1, L2, L3, L4, L5, L6, L7 y cuando termino el nivel L1, quiero ir al nivel L2 con el clic de un button, y desde L5 ir a L6 de esta manera.

public class GameLevels : MonoBehaviour { public Button Play; private int idLevel; // Use this for initialization void Start () { idLevel = PlayerPrefs.GetInt("idLevel"); Play.interactable = false; } public void SelectLevel(int i){ idLevel = i; PlayerPrefs.SetInt ("idLevel", idLevel); Play.interactable = true; } public void LoadLevel(string Levels) { SceneManager.LoadScene (Levels); } public void Replay() { SceneManager.LoadScene ("L" + idLevel.ToString ()); } public void loadNextLevel() { } } 

Si este es el button Reproducir y funciona (Como no tenemos el código completo, no estoy seguro si funciona, pero supongo que sí):

 public void Replay() { SceneManager.LoadScene ("L" + idLevel.ToString ()); } 

Entonces es lógico que el siguiente debería ser el código del siguiente nivel:

 public void loadNextLevel() { PlayerPrefs.SetInt("idLevel", idLevel+1); SceneManager.LoadScene ("L" + (idLevel+1).ToString ()); } 

Como idLevel se declara como un int, puede simplemente agregar 1 y luego convertirlo en una cadena.

También puede hacer esto (cuando carga el siguiente nivel, idLevel se reiniciará si no me equivoco, por lo que debería ser seguro hacerlo de la siguiente manera):

 public void loadNextLevel() { idLevel++; PlayerPrefs.SetInt("idLevel", idLevel); SceneManager.LoadScene ("L" + idLevel.ToString ()); } 

PD. No debería tener que convertirlo en una cadena porque cuando agrega un int a una cadena, también actuará como una cadena. Solo asegúrate de hacer los cálculos antes de agregar la cadena, así que no olvides usar los paréntesis donde lo hacemos (idLevel+1) . Entonces, SceneManager.LoadScene ("L" + (idLevel+1)); también debería funcionar

testing el código simple resolverá tu problema

// para volver a cargar el nivel

 public void Replay(){ Application.LoadLevel (Application.loadedLevel); } 

// Para cargar el siguiente nivel

 public void NxtLevel(){ Application.LoadLevel (Application.loadedLevel + 1); } 

esto ll cargar el nivel usando ID de nivel. Situado en la configuration de compilation -> Escenas en compilation.

Puede ser así:

  public class GameLevels : MonoBehaviour { public Button Play; private int idLevel; // Use this for initialization void Start () { idLevel = PlayerPrefs.GetInt("idLevel"); Play.interactable = false; } public void SelectLevel(int i){ idLevel = i; PlayerPrefs.SetInt ("idLevel", idLevel); Play.interactable = true; } public void LoadLevel(string Levels) { SceneManager.LoadScene (Levels); } public void Replay() { SceneManager.LoadScene ("L" + idLevel.ToString ()); } public void loadNextLevel() { int idLevelSecond = PlayerPrefs.GetInt("idLevel"); string thelevelnumber = idLevelSecond.ToString(); string leveltoload = "L" + thelevelnumber; Debug.Log(leveltoload); SceneManager.LoadScene(leveltoload); } } 

¡SIN PRUEBA! si el código no funcionó, dímelo.