質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

1回答

4288閲覧

unityでクイズの問題と解答を順番に表示したい

yunimaru

総合スコア10

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

1グッド

2クリップ

投稿2018/09/09 11:13

前提・実現したいこと

現在unityでクイズアプリを作成中です。
問題文と4つの選択肢を解いた後、次の問題文と4つの選択肢を表示、これを何問か繰り返したいのですがどうすればいいのでしょうか。

該当のソースコード

C#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5 6public class QuizMgr : MonoBehaviour { 7 8 // Use this for initialization 9 void Start () { 10 QuestionLabelSet (); 11 AnswerLabelSet (); 12 } 13 14 private void QuestionLabelSet(){ 15 //特定の名前オブジェクトを検索してアクセス 16 Text qLabel = GameObject.Find ("Quiz/QLabel").GetComponentInChildren<Text> (); 17 //問題文をセット 18 qLabel.text = "1+1="; 19 } 20 21 private void AnswerLabelSet(){ 22 //回答文面の作成 23 string[] array = new string[]{ "2", "1", "3", "0" }; 24 for (int i = 1; i <= 4; i++) { 25 Text ansLabel = GameObject.Find ("Quiz/AnsButton" + i).GetComponentInChildren<Text> (); 26 ansLabel.text = array [i - 1]; 27 } 28 } 29}
mutenkasan👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

丸投げ評価が付いているので、ヒントだけ。
以下を理解していれば、そこまで難しくないと思います。

  • 複数の問題文や選択肢を用意したい場合は、別途配列を用意する
  • QuestionLabelSet()の問題文やAnswerLabelSet()の選択肢といった、問題ごとに変更したい箇所については、その部分を引数にする
  • 関数にpublicを付けると、外部のスクリプトから呼び出せるようになる
  • シーンチェンジを使う場合、QuizMgrを破棄しないようにする

投稿2018/09/11 02:39

fiveHundred

総合スコア9776

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yunimaru

2018/09/11 11:08

詳しくヒントをいただけてありがたいのですが、unity歴20時間の自分としては抽象的で理解できませんでした。 配列をどこに用意するのか。 2つ目のヒントの引数には何を入れるのか。 3つ目、4つ目についても詳しく教えていただけるとありがたいです。
fiveHundred

2018/09/11 11:26

> 配列をどこに用意するのか。 私ならクラスのメンバー変数にしますが、関数から参照できれば(なおかつ、分かりづらくなければ)どこでも構いません。 > 2つ目のヒントの引数には何を入れるのか。 事前に問題を1つ取得し、その問題を入れます。 QuestionLabelSet()なら問題文、AnswerLabelSet()なら選択肢です。 > 3つ目 問題を切り替えたいときに、publicにした関数を呼び出して、そこからQuestionLabelSet()やAnswerLabelSet()を呼び出して問題文を変えるというイメージです。 publicにした関数を呼び出す際に、そのクラス(厳密にはそのインスタンス)を参照するには、GetComponent<>()などを使ってください。 > 4つ目 DontDestroyOnLoad()を使います。 ちなみに、必ずシーンチェンジを使え、という意味ではないです。
yunimaru

2018/09/11 11:37

ありがとうございます。 考えてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問