前提
超初心者です。
クイズゲームをUnity,C#で作っています。
選択肢をタッチした後に次の問題に進むためのボタンを設置しました。
問題
回答した後に、正解か不正解が出るのと同時に、次に進むボタンを設置しました。
しかし、二回選択肢をタッチしなければ、ボタンが発生しません。
該当のソースコード
void Start() { //「ボタン」を非表示にする GameObject.Find("Button").gameObject.SetActive(false); }
//選択肢をクリックすると、↓を行います public void JudgeAnswer() { Text answer = this.GetComponentInChildren<Text>(); // 文字列が指定されたいずれかの文字列と等しいかどうかを返す拡張メソッドを使ってます // 正解の場合 if (answer.text.IsAny("A", "B", "C")) { //「ボタン」を表示させる GameObject.Find("Quiz").transform.Find("Button").gameObject.SetActive(true); } // 不正解の場合 else { //「ボタン」を表示させる GameObject.Find("Quiz").transform.Find("Button").gameObject.SetActive(true); }
疑問
何が原因で、二回押さないと出てこないかが分かりません。
ここに書いた以外のコードが影響しているのでしょうか?
ヒントでも頂けるのであれば嬉しいです。
質問に対する回答(になっていなければ、すいません)
1.スプリクトにはエラーは表示されていませんが、Unityでテストをすると最初に
NullReferenceException: Object reference not set to an instance of an object QuizMgr.Start () (at Assets/QuizMgr.cs:48)
のエラーが出ます。
2.JudgeAnswerのコードのSetActiveはテストだけでなく、出来るのであればずっと使いたいです(それ以外の方法を知りませんすいません)。
3.「ボタン」をオフするコードは、上の「ボタン」を非表示にする コードのみです。
Quizというシーンの中にQuizというオブジェクトが入っています。
Buttonは別のシーンで同じ名前はありますが、Quizのシーンではこれだけです。
ButtonはQuizの子になってます。
回答1件
あなたの回答
tips
プレビュー