2016-03-20 15 views
-2

だから私は..私はなぜ理解しない「の名前は 『HighScoreList』は現在のコンテキスト内に存在しない」

をプレイヤー名を引っ張ると、ファイルから数えて、ハイスコアのための変数にそれらを保存しようとしていますこのエラーは起こっている。まったく。 私はユニティフォーラムについても尋ねましたが、これはあまり役に立ちませんでした。

コード:

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

どのコード行がエラーになっていますか? –

+0

@DanielLawton、デバッガを使用して、どのラインが正しく失敗しているかを判断しましたか? – MethodMan

+0

@GrantWinney Ifとelse ifsの下にあるすべての行がHighScoreList配列と一致するようにします。 – Plumel

答えて

1

C#が大文字と小文字が区別されます。つまり、「HighScoreList」と「HighscoreList」をミックスすることはできません。

HighScoreListのみを宣言しました。スコアは大文字にします。しかし、あなたのifでは、小文字のスコアを持つHighscoreListも使用します。

+1

私はばかです。それを指摘してくれてありがとう:) – Plumel

関連する問題