スポンサーリンク

Unityでクイズアプリ(3)

前回は、Quizシーンから、Resultシーンへの画面遷移の途中まで行った。

http://twosquirrel.mints.ne.jp/?p=13137

前回に引き続き、以下のサイトを写経していく。

Labels:  iOS 投稿者:tsuyoshi
uGUIで簡単!Unityクイズアプリで社内コミュニケーションの活性化
2015.05.28
https://engineer.blog.lancers.jp/2015/05/ugui_quiz_unity/
image_thumb_thumb

ソースコードもこちらに公開してくださっていて、大変ありがたい!

なお、基本は、以下の本に沿ってやっていく。
Unityをやるときは、必ず、以下の本を読みながらやっている。

<Unityの流れ>
(1)プロジェクトの作成
(2)オブジェクトの配置
(3)スクリプトの作成
(4)スクリプトのアタッチ

(環境)
Windows8.1
Unity5.4.3f1
Visual Studio Community 2015

前回は、Quizシーンで、実行(△ボタン)して、選択肢をクリックすると、画面遷移(すべてが○となってしまうが)するところまで行った。

(1)スクリプト間でのデータの受け渡し

Resultシーンにて、Assets > Create > C#Script で、ResultMgr というスクリプトを作成。

image image

●Judge.cs の編集

image

ここはもう理解できずにコピペしているだけ。。。とほほ。。。

Quizシーンから実行してみて、選択肢をクリックして、正解と不正解がconsole.logにしっかり表示されているか確認。

image

(2)状態によって表示を切り替える

Assets の中に、Resources フォルダを作成し、その中に、maru.pngとbatsu.pngをドラッグ&ドロップ。

image image

image

ResultMgr.cs の編集

image

ResultMgr.cs をResultシーンのMain Cameraにアタッチ。

image

Quizシーンから実行して、Imageでbatsu が表示されることを確認。

image image

(3)選択した回答によって表示を切り替える

ResultMgr.cs の書き換え

image

Resultシーンで、Main Camera > JudgeUI > JudgeLabel をクリックして、InspectorのText (Script)のTextを、「正解!」に変更。

上記スクリプトとあわせて、デフォルトの画面を、正解画面にしておいて、Quizシーンで不正解の選択肢を選んだ場合に、Resultシーンの「JudgeLabel」と「JudgeImage」を不正解!と、batsu.pngに変更するようになっている。

image

Quizシーンから実行して、確認。

image image

image image

ちゃんと、うまくいっていることを確認した。やっとクイズらしくなってきた!

(4)ResultシーンのNextボタンに次の問題へいくロジックを書く。

GameStart.csを修正して、ResultシーンならばQuizシーンに移動するように、スクリプトを書き加える。

image

Resultシーンで、Hierarchyタブの、Main Camera > JudgeUI > NextScene をクリックして、Inspectorタブ の、Button(Script) > On Click() のすぐ右下のボタンをクリックして、GameStart > NextQuiz() をクリック。

image image

実行すると、Quizシーンと、Resultシーンを行き来することができるようになったことが確認できる。(このままだと無限ループになってしまう。)

(5)得点機能をつける

ResultMgr.cs の編集

image image

ここらへんはいまいちはっきりとは理解できず。。。

File > New Scene より、「Score.unity」というシーンを作成して保存し、File > Build Settings を開いて、Score.unity をドラッグ&ドロップ。

image

Main CameraをDeleteしてから、Assetsの、Main Camera PrefabをHierarchyタブにドラッグ&ドロップ。

image image

GameObject > UI > Event System をクリックして、Event Systemを追加。

image

GameObject > UI > Text をクリックして、Textを追加。これを右クリックして、Duplicate

image image

image

Text(2)を、Scoreという名前に変更して、位置を調整。

image

Textを、Inspectorタブで、上の方に位置調整して、Text(Script)のところに、Score と記載。

image image

Assets > Create > C#Script で、Score.cs という名前でスクリプトを作成。

image image

Score.cs をダブルクリックして編集。

image image

AssetsのScore.cs を、HierarchyタブのMain Cameraにドラッグ&ドロップ(スクリプトをオブジェクトにアタッチ)。

image image

ボタンのテキストを変更。

image

実行すると、以下のようになる。

image

(6)GameStart.csにて、3回問題を繰り返したら、Scoreシーンに遷移するように変更する。

また、今いるシーンがScoreという名前であれば、Titleという名前のシーンに移動する ように、GameStart.cs を編集する。

image image

Scoreシーンにて、Buttonをクリックして、Inspectorタブ > Button(Script) > on Click() のすぐ右下のところをクリックして、GameStart > BackToTitle をクリック。

image image

実行してみて、うまくいくことを確認。

image

(7)あとは、以下を参考に、Androidアプリで、戻るボタンでアプリを終了できるように設定。

http://twosquirrel.mints.ne.jp/?p=11844

GameStart.cs を編集

image

(8)File > Build Settings… で、以下のように設定してから、Build をクリック

image image

数分間かかる。約20MB.

(9)

自分のスマホ(Android)にメールして、インストール。

Screenmemo_share_2016-12-25-23-18-36

小さすぎる。。。最初の、Gameタブの16:10 Portrait がいけなかったのか。。。

image

(10)Gameタブで、WXGA Portrait(800×1280) に変更する。

image

ボタンがすごく小さくなってしまう。。。

image

image image

image image

しかし、これだと、字の解像度が荒くなっていまう、、、最初からWXGA Portrait(800×1280)で、文字の大きさなどを調整すればよかったのかも、、、

もう一度Buildして、自分のスマホ(arrows M03(720×1080))で確認。

Screenmemo_share_2016-12-26-00-01-44 Screenmemo_share_2016-12-26-00-02-09

大きさ的にはいい感じになった。他の解像度(1080×1920)のスマホでは、どのように表示されるのかは私には確認できていない。

今後の課題として、

(1)データベースに問題と回答を入れておいて、5問とか10問とか、問題を出したい。

(2)結果をNCMB(Nifty Cloud Mobile Backend)や、Firebaseに保存して、オンラインのランキングをつくりたい。

(3)記述式問題(キーワードが入っていれば●点加算、、、などでスコア化など)をしたい。

難しそう。。。

<Unityでクイズアプリ(1)(2)(3)の写経元と、リンク>

Labels:  iOS 投稿者:tsuyoshi
uGUIで簡単!Unityクイズアプリで社内コミュニケーションの活性化
2015.05.28
https://engineer.blog.lancers.jp/2015/05/ugui_quiz_unity/
image_thumb_thumb

ソースコードはこちらに公開してくださっていて、大変ありがたい。

http://twosquirrel.mints.ne.jp/?p=13021

http://twosquirrel.mints.ne.jp/?p=13137

http://twosquirrel.mints.ne.jp/?p=13263 (このページ)

スポンサーリンク

Unity

Posted by twosquirrel