Unity(C#)初心者・入門者向けチュートリアル ひよこのたまご

AndroidやiOS向けアプリを簡単に作れるゲーム開発環境Unity(ユニティ)の使い方を、チュートリアル方式で一緒に学びましょう!

【Unity5】uGUI(Text)でスコア機能!OnTriggerEnter2D, SendMessage【フラッピーバード風4】

Unity5.0.0f4 Personal(2015年5月)

f:id:hiyotama:20150513125236p:plain

 

前回の続きです〜

 

前回作成した障害物をくぐり抜けた時にスコアが入るようにしましょう〜

 

【目標】スコア機能を実装する!

【課題1】スコアGUIを表示する

まずはスコアのGUITextを画面に作成しましょう〜GUITextについては、以下エッセンスをご参照下さい〜

 

hiyotama.hatenablog.com

 

f:id:hiyotama:20150511160815p:plain

uGUIのTextを作成 名前はScore

 

f:id:hiyotama:20150511160955p:plain

Score(Text)のInspector設定

 

ちなみにFontは、Asset StoreのAntique PackというAssetのmail ray stuffを使いました〜

 

f:id:hiyotama:20150511161116p:plain

こんな感じのゲーム画面

 

【課題2】スコアアップを判定するオブジェクトを作成する

続いて障害物と障害物の間にオブジェクトを作成し、そこを通過した時にScoreを+1していきます〜まずは空オブジェクトを作成し、ScoreUpという名前をつけましょう〜

 

f:id:hiyotama:20150511161745p:plain

Create>Create Empty 名前はScoreUp

 

次にScoreUpオブジェクトにBox Collider2Dを付け、Is Triggerをtrueにしておいて下さい!

 

f:id:hiyotama:20150511163645p:plain

ScoreUpオブジェクトのInspector Is Triggerはtrue

 

続いて既にPrefab化したtreeオブジェクトを、一旦Hierarchyビューへ戻します〜そして次に、treeオブジェクトの子オブジェクトとして、ScoreUpオブジェクトを設定します〜

Prefab化したオブジェクトは一旦Hierarchyビューに戻さなければ、子オブジェクトを追加することができないのです〜

 

f:id:hiyotama:20150511164103p:plain

一旦Hierarchyビューへtreeプレファブを戻す

 

f:id:hiyotama:20150511164150p:plain

ScoreUpオブジェクトをtreeオブジェクトの子オブジェクトに設定する

 

f:id:hiyotama:20150511164409p:plain

元のtreeプレファブを削除し、Hierarchy上にあるtreeオブジェクトを再度Prefab

化する

 

一旦Prefabを削除してしまったので、moving_ObjについているMapScriptのpublic変数treePrefabを、再度指定してあげる必要があります〜

 

f:id:hiyotama:20150511164606p:plain

再度Prefabを指定

 

【課題3】加点する仕組みを実装する

それでは続いて、playerScriptにスコアアップ用のメソッドを加筆していきます〜以下ソースです〜

 

 

まずはpublic変数Scoreに、Scoreオブジェクトを指定しましょう〜

 

f:id:hiyotama:20150511165426p:plain

ドラッグ&ドロップ!

 

TriggerであるScoreUpオブジェクトを通過した時、ScoreオブジェクトについているScoreUpオブジェクトを呼び出しています〜1というのは引数で、このあと作るScoreScriptにて1点追加されます〜

 

続いてScoreオブジェクトにScoreを加点していくScoreScriptを取り付けていきます〜以下ソースです〜

 

 

Startメソッドにて、ScoreオブジェクトのTextを初期化しております〜

元々は「SCORE: XXXXX」となっていますが、Startメソッドですぐに「SCOREZ: 0」に上書きします〜

 

続いて先ほど、playerScriptにてSendMessageされていたScoreUpメソッドです〜外部から呼び出されるので、publicにしておいて下さい〜

障害物の間を通った時、引数のpointには1が渡されているので、scoreは+1されます!そしてその直後、+1されたScoreでTextを上書きすることによって、Scoreの加点を実現させています〜

 

これでスコアアップが実現されました!

 

f:id:hiyotama:20150511171006p:plain

障害物の間をくぐり抜ける度に加点されていく

 

今回はここまでです〜

ありがとうございました〜

 

【Unity開発5】下準備【フラッピーバード風:1】

【Unity開発5】プレイヤーピヨを動かしたい!【フラッピーバード風:2】

【Unity開発5】前方に障害物を作り、くぐり抜けたい!【フラッピーバード風3】

【Unity開発5】ゲームにスコア機能を付けたい!【フラッピーバード風4】

【Unity開発5】タイトルとゲームオーバーを作りたい!【フラッピーバード風5】