ヘディングのテキスト
Update関数の中の10行目で、入力されたテキスト(inputstring)と問題の答え(Answer)が等値(正しい答えを入力している)にもかかわらずFalse判定されてelseのほうが実行されてしまいます。なぜでしょう、、、?
なぜか最終問題だけは正しく判定されます。
C#
1using UnityEngine; 2using UnityEngine.UI; 3 4public class Quiz : MonoBehaviour 5{ 6 public GameObject Sen_Obj = null; 7 8 //入力を受け取る謎の型 9 public InputField inputfield; 10 //入力を受け取るstring 11 public string inputstring; 12 13 //クイズリストを宣言 14 public string[] QuizList; 15 //問題文を格納するstringを宣言 16 public string Question; 17 //答えを格納するstringを宣言 18 public string Answer; 19 20 //問題数を格納する問題数を宣言 21 public int NoQ; 22 //問題番号を宣言 23 public int QNo; 24 25 void Start() 26 { 27 //テキストファイルを格納するインスタンス 28 TextAsset QuizFile = new TextAsset(); 29 //クイズファイルに全体のテキストを格納 30 QuizFile = Resources.Load("Quiz", typeof(TextAsset)) as TextAsset; 31 //クイズファイルをstringに変換 32 string QuizText = QuizFile.text; 33 //テキストを改行で分割、クイズリストに格納 34 QuizList = QuizText.Split('\n'); 35 //問題数を格納 36 NoQ = QuizList.Length; 37 //問題番号を1にリセット 38 QNo = 1; 39 40 //コンポーネントを格納しているらしい 41 inputfield = inputfield.GetComponent<InputField>(); 42 43 //1問目を表示 44 GetQuiz(1); 45 } 46 47 void Update() 48 { 49 //エンターが押されたら正誤判定 50 if (Input.GetKeyDown(KeyCode.Return)) 51 { 52 //入力を取得 53 inputstring = inputfield.text; 54 55 if (inputstring != null) 56 { 57 //正解 58 if (inputstring == Answer) 59 { 60 Debug.Log("正解です!"); 61 } 62 //不正解 63 else 64 { 65 Debug.Log(不正解です); 66 } 67 68 //次の問題を表示 69 if (QNo < NoQ) 70 { 71 //問題番号を+1して次の問題を表示 72 QNo++; 73 GetQuiz(QNo); 74 //回答欄をクリア 75 inputfield.text = ""; 76 } 77 //最終問題の時は 78 else 79 { 80 Debug.Log("問題は終了しました"); 81 ChangeText("問題は以上です"); 82 } 83 } 84 } 85 } 86 87 //問題を表示する 88 void ChangeText(string Sentence) 89 { 90 Text Sen_Tex = Sen_Obj.GetComponent<Text>(); 91 Sen_Tex.text = Sentence; 92 } 93 94 //(引数)問目を表示 95 void GetQuiz(int QuizNum) 96 { 97 //問題*答えをstringに格納 98 string QAString = QuizList[QuizNum - 1]; 99 //*で分割 100 string[] QAList = QAString.Split('*'); 101 //QuestionとAnswerに代入 102 Question = QAList[0]; 103 Answer = QAList[1]; 104 //表示 105 ChangeText(Question); 106 } 107} 108