初ゲーム制作日記 3日目

今日やったこと

  • 【Unity講座】寿司打風タイピングゲームの作り方 #5, 8, 9まで進めた

文字入力の正解・不正解を見た目でわかるように(zが赤く、不正解)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; // UIを使えるようにする

// 画面にあるテキストの文字を変更する



public class typingManagaer : MonoBehaviour
{
    // 画面にあるテキストを持ってくる
    [SerializeField] Text furiganaText; // ふりがな用のテキスト
    [SerializeField] Text questionText; // 問題用のテキスト
    [SerializeField] Text answerText; //答え用のテキスト

    // 問題文の中身
    private string[] _furigana = { "おーばーうぉっち", "らいんはると", "とれーさー", "ざりあ" };
    private string[] _question = { "オーバーウォッチ", "ラインハルト", "トレーサー", "ザリア" };
    private string[] _answer = { "o-ba-ulotti", "rainharuto", "tore-sa-", "zaria" };

    // 何番目か指定するためのstring

    private string _furiganaString;
    private string _questionString;
    private string _answerString;

    // 何番目の問題か

    private int _questionNumber;

    private int _answerNumber;

    // ゲームを始めたときに一度だけ呼ばれるもの
    void Start()
    {
        OutPut();
    }

    // フレームごとに一度呼ばれる
    void Update()
    {
        if (Input.GetKeyDown(_answerString[_answerNumber].ToString()))
        {
            Correct();

            if (_answerNumber >= _answerString.Length) 
            {
                OutPut();
            }
        }
        else if (Input.anyKeyDown)
        {

            Miss();

        }
    }


    // 問題を出すための関数
    void OutPut()
    {
        _answerNumber = 0;

        _questionNumber = Random.Range(0, _question.Length);
        _furiganaString = _furigana[_questionNumber];
        _questionString = _question[_questionNumber];
        _answerString = _answer[_questionNumber];

        // 文字を変更する
        furiganaText.text = _furiganaString;
        questionText.text = _questionString;
        answerText.text = _answerString;

    }

// 正解したときの関数
    void Correct()
    {
        _answerNumber++;
        answerText.text = "<color=#684500>" + _answerString.Substring(0,_answerNumber) + "</color>" + _answerString.Substring(_answerNumber);
    }

    // 不正解のときの関数
    void Miss()
    {
        answerText.text = "<color=#684500>" + _answerString.Substring(0, _answerNumber) + "</color>"
            + "<color=#FF0000>" + _answerString.Substring(_answerNumber, 1) + "</color>"
            + _answerString.Substring(_answerNumber + 1);
    }

}

 講座よりはシンプルですが、タイピングゲームの原型ができました!

困ったこと

 なんちゃらエラーがいっぱい出てきて、焦りました。幸い今日はプログラミング教室の日だったので、講師の方とわりとすぐに解決しました。
 エラーの原因は{ }, (), ;の忘れ、+が過剰にあるなどでした。

 タイピング「ゲーム」として成り立たすには、色々あると思いますが、まずは音などの効果音・BGM、などを追加してみたい。

 それでは。

この記事が気に入ったらサポートをしてみませんか?