Unityと黒猫

Unityの備忘録。一緒に勉強しましょう。

「Unityちゃんとクイズしようよ!」の作成備忘録2

 

yamasho69.hatenablog.com

 前回の続きです。

まず、集めた素材や作成するスクリプトはプロジェクトに溜まっていきますが、下の写真のように必ずフォルダ分けして整理しましょう。量が増えていくとカオスになります。

f:id:yamasho69:20190502222950p:plain

さて、今回はこのゲームの詳細な構成について書いていきます。

このゲームは4つのシーン、21のクラスから成り立っております。

構成は次の通りです。

 

 

UnityScene(シーン)

ユニティちゃんの利用規約として、表示することが求められているユニティちゃんマークをゲーム起動時に表示するシーンです。

f:id:yamasho69:20190502232037p:plain

メインカメラ(オブジェクト)

メインカメラは他のシーンにもオブジェクトとして存在します。

このシーンでは他にオブジェクトがないため、メインカメラにAwakeUnityクラスをアタッチしました(空のオブジェクトを作ってもよい)。

AwakeUnity(クラス)

フェードアウトして、TitleSceneへ遷移するクラス。

 

TitleScene(シーン)

タイトルを表示し、ゲームの開始やプライバシーポリシーの表示を行うことができるシーンです。今後、色々なモードを増やすことも考えているため、いきなりクイズにいくのではなく、タイトル画面をかませることにしました。

f:id:yamasho69:20190502232729p:plain

スタートボタン(オブジェクト)

StartButton(クラス)

「GAME START」をクリックすると、QuizSceneに遷移します。一度押すと他のボタンは押せません。 

クレジット&プライバシーポリシーボタン(オブジェクト)

×ボタン(オブジェクト)

Messege(クラス)

「CREDIT AND PRAVACYPOLICY」をクリックすると、クレジットとプライバシーポリシーが記載されているパネルを表示させます。パネル右上の×ボタンをクリックするとパネルは消えます。パネルが表示されている間は、他のボタンは押せないようにします。

f:id:yamasho69:20190502233443p:plain

EXITボタン(オブジェクト)

ExitButton(クラス)

クリックすると、ゲームを終了します。一度押すと他のボタンは押せません。

背景×2(オブジェクト)

BackGroundController(クラス)

背景をスクロールします。スタートボタンかExitボタンを押すとスクロールが停止します。

ユニティちゃん(オブジェクト)

UnityChanLocomotion(クラス)

ユニティちゃんを歩かせます。スタートボタンを押すと、飛び跳ねた後、ボイスを出します。Exitボタンを押すと、手を振って、ボイスを出します。

 

QuizScene(シーン)

問題を出題する、このゲームのメインとなるシーンです。

f:id:yamasho69:20190502234621p:plain

ユニティちゃん(オブジェクト)

UnityChanController(クラス)

回答や時間切れの度にリアクションを取り、ボイスを出します。

 

クイズマネージャー(オブジェクト)

QuizMgr(クラス)

クイズの出題を行い、制限時間、残り問題数等を管理します。

オブジェクトに実体はありません。

 

選択肢ボタン×4(オブジェクト)

Judge(クラス)

クリックした選択肢が正解か判断します。

回答したボタンは黄色に変わります。一度クリックすると次の問題開始まで押せないようにします。

 

一時停止ボタン(オブジェクト)

StopMgr(クラス)

タイマーを停止し、問題文と選択肢のボタンを非表示にします。

再開ボタン等を表示させます。

10問目終了後や問題と問題の合間には押すことはできません。

f:id:yamasho69:20190502234704p:plain

再開ボタン(オブジェクト)

ResumeButton(クラス)

タイマーを再開させ、問題文と選択肢ボタンを再表示させます。

再開ボタン等を非表示にします。一度押すと他のボタンは押せません。

リトライボタン(オブジェクト)

QuizToRetry(クラス)

クイズを1問目からやり直します。つまりQuizSceneに遷移します。一度押すと他のボタンは押せません。

タイトルに戻るボタン(オブジェクト)

GoToTitleButton(クラス)

TitleSceneに遷移します。一度押すと他のボタンは押せません。

Exitボタン(オブジェクト)

QuizToExit(クラス)

ゲームを終了します。一度押すと他のボタンは押せません。

タイマーゲージ(オブジェクト)

TimeScript(クラス)

タイマーゲージ(オレンジのゲージ)を20秒かけて減らしていきます。

 

ResultScene(シーン)

結果を表示するシーンです。リトライするか終了するかを選択することができます。

f:id:yamasho69:20190502235216p:plain

ユニティちゃん(オブジェクト)

ResultMgr(クラス)

QuizSceneから正解数を受け取り、それに応じた評価画像(大変よくできました等)を表示させます。またそれに対応したリアクションをユニティちゃんに取らせます。

 

リトライボタン(オブジェクト)

RetryButton(クラス)

QuizSceneに遷移します。一度押すと他のボタンは押せません。

タイトルへ戻るボタン(オブジェクト)

TitleButton(クラス)

TitleSceneに遷移します。一度押すと他のボタンは押せません。

Exitボタン(オブジェクト)

 ExitButton2(クラス)

ゲームを終了します。一度押すと他のボタンは押せません。

 

少し見づらいですが、構成はこのようになっています。

ここには出ていないオブジェクトも沢山ありますが、クラスをアタッチしているオブジェクトは上記で全てです。

次回以降は備忘録として残したいコードや処理について書いていこうと思います。