Unityで作る4択クイズpart1

簡単なクイズゲームを作った話。

参考 https://engineer.blog.lancers.jp/2015/05/ugui_quiz_unity/

↓完成図↓(内容は気にしないでください)

ゲームでは3つのsceneを使います。

クイズシーン ⇔ 正解/不正解シーン  

以上を繰り返す物になります。

実際に作ります。

ゲーム画面の設定とボタンが押された時のスクリプトを紹介します。

ゲーム画面↓↓

まずはシーンを一つ用意します。アッセト内で右クリック、create、sceneで行けます。

つぎに下の写真のようにもろもろ(下で説明)を配置します。

MainCamera下にUI→canvasを選択

canvas内で解答用のボタンを4つ用意・問題を表示するようにも1つ用意します。

名前の不一致でプログラムが動かないこともあるので一応

・canavs → Quiz

・Button → AnsButton1

・Button(問題文のやーつ)→ QuestionField

に変えています。ヾ(@⌒ー⌒@)ノ

問題回答用のボタンに以下のスクリプトをアタッチします。

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
 
public class Judge : MonoBehaviour {
 
    //選択したボタンのテキストラベルと正解のテキストを比較して正誤を判定
    public void JudgeAnswer(){
        //正解のデータをテキストでセットする
        string answerText = Question.get();
        //選択したボタンのテキストラベルを取得する
        Text selectedBtn = this.GetComponentInChildren<Text> ();
 
        if (selectedBtn.text == answerText){
            SceneManager.LoadScene("result");

        } else {
            SceneManager.LoadScene("result_false");
        }
    }
}

この段階では意味不明なテキストですが、一応説明していきます。

次のパートで出てくるスクリプト内に、正解の文字列を返すプログラムを用意しています。

string answerText = Question.get();

↑この部分で正解テキストを取得してます。

そして、選択されたボタンのテキストと正解テキストをif文を用いて比較しています。正誤に応じてシーン遷移が変わってきます。

スクリプトの説明は以上です。

下の写真の流れを1~4のボタンすべてで行う。

1スクリプトをhierarchy上のボタンそれぞれにアタッチ。

2inspector内のスクリプトをOnClick内の写真の部分にドロップ。

3Judge.Judge_Answerを選択。

*正直ほかにもっといい方法があるのかもしれないですが、自分はこれしか思いつかなかったです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です