2016-03-20 11 views
-2

So versuche ich Spielernamen zu ziehen und aus einer Datei zu zählen und sie in eine Variable für hohe Werte speichern ..„Der Name‚Highscoreliste‘existiert nicht im aktuellen Kontext“

Ich verstehe nicht, warum Dieser Fehler tritt jedoch auf. Überhaupt. Ich habe auch versucht, in den Foren der Einheit zu fragen, aber das hat nicht viel geholfen.

Code:

using UnityEngine; 
using System.Collections; 
using UnityEngine.UI; 
using System; 

public class highscores : MonoBehaviour { 

public int[] HighScoreList; 
public string[] HighScoreListNames; 
public int score; 
public Text HighScore0; 
public Text HighScore1; 
public Text HighScore2; 
public Text HighScore3; 
public Text HighScore4; 

void Awake() 
{ 
    HighScoreList = new int [5]; 
    HighScoreList [0] = 0; 
    HighScoreList [1] = 0; 
    HighScoreList [2] = 0; 
    HighScoreList [3] = 0; 
    HighScoreList [4] = 0; 
    HighScoreListNames = new string [5]; 
    HighScoreListNames [0] = ""; 
    HighScoreListNames [1] = ""; 
    HighScoreListNames [2] = ""; 
    HighScoreListNames [3] = ""; 
    HighScoreListNames [4] = ""; 
} 

void GetScore() 
{ 
    string[] currentscore = System.IO.File.ReadAllLines (@"C:\Users\Plum\Desktop\Pixel Ninjav3.3\Assets\leaderboard.txt"); 
    score = Convert.ToInt32(currentscore[1]); 
    if (score >= HighScoreList[0]) 
    { 
     HighscoreList[4] = HighScoreList[3]; 
     HighscoreList[3] = HighScoreList[2]; 
     HighscoreList[2] = HighScoreList[1]; 
     HighscoreList[1] = HighScoreList[0]; 
     HighscoreList[0] = score; 
     HighScoreListNames[4] = HighScoreListNames[3]; 
     HighScoreListNames[3] = HighScoreListNames[2]; 
     HighScoreListNames[2] = HighScoreListNames[1]; 
     HighScoreListNames[1] = HighScoreListNames[0]; 
     HighScoreListNames[0] = currentscore[0]; 
    } 
    else if (score >= HighScoreList[1]) 
    { 
     HighscoreList[4] = HighScoreList[3]; 
     HighscoreList[3] = HighScoreList[2]; 
     HighscoreList[2] = HighScoreList[1]; 
     HighscoreList[1] = score; 
     HighScoreListNames[4] = HighScoreListNames[3]; 
     HighScoreListNames[3] = HighScoreListNames[2]; 
     HighScoreListNames[2] = HighScoreListNames[1]; 
     HighScoreListNames[1] = currentscore[0]; 
    } 
    else if (score >= HighScoreList[2]) 
    { 
     HighscoreList[4] = HighScoreList[3]; 
     HighscoreList[3] = HighScoreList[2]; 
     HighscoreList[2] = score; 
     HighScoreListNames[4] = HighScoreListNames[3]; 
     HighScoreListNames[3] = HighScoreListNames[2]; 
     HighScoreListNames[2] = currentscore[0]; 
    } 
    else if (score >= HighScoreList[3]) 
    { 
     HighscoreList[4] = HighScoreList[3]; 
     HighscoreList[3] = score; 
     HighScoreListNames[4] = HighScoreListNames[3]; 
     HighScoreListNames[3] = currentscore[0]; 
    } 
    else if (score >= HighScoreList[4]) 
    { 
     HighscoreList[4] = score; 
     HighScoreListNames [4] = currentscore[0]; 
    } 

} 
} 
+1

In welcher Codezeile ist der Fehler aufgetreten? –

+0

@DanielLawton, haben Sie den Debugger verwendet, um festzustellen, auf welcher Zeile es genau fehlschlägt ..? – MethodMan

+0

@GrantWinney Alle Zeilen unter dem ifs und sonst ifs mit dem HighScoreList Array zu tun – Plumel

Antwort

1

C# ist Groß- und Kleinschreibung. Das bedeutet, dass Sie "HighScoreList" und "HighscoreList" nicht mischen können.

Sie haben nur HighScoreList deklariert. Mit in Großbuchstaben geschriebenen Werten. Aber in Ihrem ifs verwenden Sie auch HighscoreList mit Score in Kleinbuchstaben.

+1

Ich bin ein Idiot. Danke, dass du das gezeigt hast :) – Plumel