2016-04-29 11 views
0

Ich habe einen Streamreader und Streamwriter zum Laden und Erstellen der Datei erstellt. Aber ich habe Schwierigkeiten beim Durchlaufen der Liste der Top 5 Highscores, um die Highscores zu aktualisieren, wenn eine neue erreicht wird.So speichern Sie meine Highscores in eine Textdatei Einheit

 public int highscore; 
    public static int score; 
    //public new string name; 
    private string initials; 
    public List<int> highscores; 
    //public List<Person> highscores; 
    Text HighScoreText; 

    void Awake() 
    { 
     HighScoreText = GetComponent<Text>(); 
     score = 0; 
     highscores = new List<int>(); 
     score = PlayerPrefs.GetInt("Score",0); 
     highscore = PlayerPrefs.GetInt("HighScore", 0); ; 
     LoadScore(); 
     UpdateScore(); 

    } 
    void UpdateScore() 
    { 


     HighScoreText.text = "HighScore:" + score; 
//Here I get an error cannot apply indexing with type int 
     if (score > highscores[4].s) 
     { 
      highscores.Add(score); 
      highscores.Sort(); 

      highscore = score; 
      HighScoreText.text = highscore.ToString(); ; 
     } 

    } 
+0

Du meintest 'if (score> highscores [4]) {'? Dieses '.s' am Ende macht keinen Sinn. Und wenn Sie einen neuen Highscore hinzufügen, vergessen Sie nicht, den sechsten/niedrigsten fallen zu lassen! – Mephy

Antwort

0

Sie erklärt highscores als list von int: public List<int> highscores;

Dann werden überprüft Sie if (score > highscores[4].s) { ... } was die .s für ist? Du brauchst es überhaupt nicht. Überprüfen Sie einfach if (score > highscores[4]) und Ihr Code soll normal kompilieren.

Auch nach dem Kompilieren möchten Sie Ihre Logik überprüfen, indem Sie Ihre Code-Anweisung nach Anweisung debuggen. Verwenden der Option F-10 step-over, wenn Sie Visual Studio verwenden.

Verwandte Themen