【Unity(C#)】クイズゲームを作りたいんじゃ!!(前編)【SAP】

Unity

こんにちは、ばいおです。

今回は、今までと趣向を変え、Unityに初めて触る私がクイズゲームをUnityで作成するまでの過程を記事にしました。
1回では書ききれない(というかゲームが完成してない)ので、2,3回に分けて記事にします。

また、クイズの内容ですが、せっかくSAPコンサルという少し珍しい(?)仕事をしているので、SAPに関するクイズにしようと思います。

変に凝らずに、とにかくゲームを完成させることを第一の目標にします。
なので、恐ろしく低品質なホムンクルスが誕生すると思います。よろしくお願いします

後編の記事はこちら↓からどうぞ

また、クイズゲーム制作についての記事は↓にまとめていますので、あわせてご参照ください!

参考にした書籍など

ゲーム作りに着手する前に、Unityのインストール方法や、Unity・C#に関する基礎知識のインプットをしました。
以下、参考にした書籍や動画などです。

書籍:「Unityの教科書 Unity 2021完全対応版」

Unityのインストール方法から、簡単なゲーム作成までの一連の流れが記載されています。
実際に色々なサンプルゲームを作成できるので、初学者の私にとって、ゲーム作りの全体像を理解するのに良い書籍でした。

Unityの教科書 Unity 2021完全対応版 2D&3Dスマートフォンゲーム入門講座 (Entertainment&IDEA)
Unity 2021に最速対応! いちばん売れているUnity入門書が最新バージョンに対応 最新環境でゲーム制作を楽しく体験しましょう! ■本書の特徴 ●初めてゲーム制作にチャレンジする人に最適! 最初は簡単な2Dゲームの制作からスタートし、徐々に難しいゲームへと進めていきます。サンプルゲームの制作を通じて、Unity...

Youtube:ゲームの作り方チャンネル

これが無料で見れていいのか、ってレベルで丁寧でわかりやすい動画でした。
書籍だけではイマイチわからなかったUnityの設定やプログラム(C#)の意味を本当に細かく説明してくださっているので、助かりました。

サイト:Lancers Engineer「uGUIで簡単!Unityクイズアプリで社内コミュニケーションの活性化」

Unityでのクイズゲーム作成の一連の流れが記載されているので、とても重宝しました。
ただ、情報が少し古い(2015年の記事)ので、記事の内容をそのまま適用できないケースも有りました。

このサイト以外には、Unityでのクイズゲームの作り方について、まとまっているサイトはあまり見受けられなかったので、クイズゲームはあまり人気がないのでしょうか。
(もしくは、Unityとクイズゲームは相性が良くないとか・・・・?)

uGUIで簡単!Unityクイズアプリで社内コミュニケーションの活性化 | ランサーズ(Lancers)エンジニアブログ
ベンチャーにおける成長フェーズでは、増えた社員同士のコミュニケーションやバックグラウンドの共有などが上手くいかないのが、ベンチャーあるあるだと認識してます。そういったあるあるが起こる前に、新メンバーと既存メンバーが気軽にコミュニケーションを取れる場を提供するため、みんなのことを気軽に知れる社内クイズアプリをUnityで...

実際にクイズゲームを作ってみる

では、インプットが済んだところで、いよいよゲーム作成に入ります。

プラットフォームですが、ブラウザゲームの作成が比較的容易だということで、ブラウザで動くゲームを作ります。

ゲームフローは、「タイトル画面」⇒「クイズ画面」⇒「リザルト画面」⇒「タイトル画面」という形にします。

タイトル画面作成

まずは、タイトル画面を作成していきます。
とはいっても、私にはデザインの素養は皆無なので、タイトル文字とスタートボタンのみを搭載している簡素なものにしようと思います。

こういう時、上手な絵が描けたり、デザインセンスがあればいいのにとよく思います。
しかし、ないものねだりをしても仕方ないので、泣く泣くシンプルなタイトルを作成しました。

そして、できたのがこちら!(画面中央やや左)

完全に在りし日のフラッシュゲームですね。
いや、フラッシュゲームのタイトル画面のほうがまだなんか色々あったような・・・。

この画面を作るだけでも、既にわからない箇所がでてきて焦りました。
(タイトルの「SAPクイズ」のフォントを28以上に設定しようとすると何故か消滅する、等)

ともあれ、タイトル画面は完成したので、次は「ゲームスタート」ボタンを押すことで、クイズが始まるロジックを実装します。

「ゲームスタート」ボタンのロジック実装

まずは、「ゲームスタート」ボタンを押すことで遷移するクイズ画面を作成します。

一旦、今回は仮置で画面を用意します。

画面中央下部の「quiz」がクイズ画面で「title」がタイトル画面のシーンになります。
なので、上の画像で表示されているのは「quiz」の方ですね。

続いて、タイトル画面の「ゲームスタート」を押した時に作動する、クイズ画面への遷移ロジックを作成します。

ソースコード(C#)はこちらです。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class gamestart : MonoBehaviour
{
    private bool firstPush = false;

        public void PressStart()
        {
            //1度もゲームスタートボタンが押されていない場合、画面遷移
            if (!firstPush)
            {
                SceneManager.LoadScene("quiz");
                firstPush = true;
            }
        }
}

いっちょまえに連打対策(「ゲームスタート」ボタンを連打しても、画面遷移処理が行われるのは1回だけにする)もしてみました。

まあこのゲームでボタン連打するなんて私しかいないんですけどね。

最後に、このスクリプトをボタンにアタッチし、ボタンクリック時に発動するよう設定します。

すると

タイトル画面の「ゲームスタート」ボタンを押して、クイズ画面に遷移することができました!
これだけでなんか嬉しい・・・!

さて、次はメインとなるクイズ画面の作り込み・・・ですが今回は一旦ここまで。
続きは次回記載します。

おわりに

今回は、Unityでのゲーム作成過程を記事にしました。

ここまで作るだけでも、結構時間かかりました・・・
しかも肝心のクイズ部分までまだ行き着いていません。

この後、問題をランダムに出題したり、正誤判定したり、リザルト画面を表示したりするロジックなど、より高難易度な処理を実装していかなければならないのに。早くも不安ですね!

ともかく、作り切るのが目的ですので、何とか完成までこぎつけようと思います。
(Unity経験者の方がこの記事を見ていたら、温かい目で見ていただければと。。。)

ここまで読んでいただきありがとうございました。

タイトルとURLをコピーしました