こんにちは、ばいおです。
今回は、今までと趣向を変え、Unityに初めて触る私がクイズゲームをUnityで作成するまでの過程を記事にしました。
1回では書ききれない(というかゲームが完成してない)ので、2,3回に分けて記事にします。
また、クイズの内容ですが、せっかくSAPコンサルという少し珍しい(?)仕事をしているので、SAPに関するクイズにしようと思います。
変に凝らずに、とにかくゲームを完成させることを第一の目標にします。
なので、恐ろしく低品質なホムンクルスが誕生すると思います。よろしくお願いします。
後編の記事はこちら↓からどうぞ
また、クイズゲーム制作についての記事は↓にまとめていますので、あわせてご参照ください!
参考にした書籍など
ゲーム作りに着手する前に、Unityのインストール方法や、Unity・C#に関する基礎知識のインプットをしました。
以下、参考にした書籍や動画などです。
書籍:「Unityの教科書 Unity 2021完全対応版」
Unityのインストール方法から、簡単なゲーム作成までの一連の流れが記載されています。
実際に色々なサンプルゲームを作成できるので、初学者の私にとって、ゲーム作りの全体像を理解するのに良い書籍でした。
Youtube:ゲームの作り方チャンネル
これが無料で見れていいのか、ってレベルで丁寧でわかりやすい動画でした。
書籍だけではイマイチわからなかったUnityの設定やプログラム(C#)の意味を本当に細かく説明してくださっているので、助かりました。
サイト:Lancers Engineer「uGUIで簡単!Unityクイズアプリで社内コミュニケーションの活性化」
Unityでのクイズゲーム作成の一連の流れが記載されているので、とても重宝しました。
ただ、情報が少し古い(2015年の記事)ので、記事の内容をそのまま適用できないケースも有りました。
このサイト以外には、Unityでのクイズゲームの作り方について、まとまっているサイトはあまり見受けられなかったので、クイズゲームはあまり人気がないのでしょうか。
(もしくは、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経験者の方がこの記事を見ていたら、温かい目で見ていただければと。。。)
ここまで読んでいただきありがとうございました。