【Unity5】uGUI(Text)でスコア機能!OnTriggerEnter2D, SendMessage【フラッピーバード風4】
Unity5.0.0f4 Personal(2015年5月)
前回の続きです〜
前回作成した障害物をくぐり抜けた時にスコアが入るようにしましょう〜
【目標】スコア機能を実装する!
【課題1】スコアGUIを表示する
まずはスコアのGUITextを画面に作成しましょう〜GUITextについては、以下エッセンスをご参照下さい〜
uGUIのTextを作成 名前はScore
Score(Text)のInspector設定
ちなみにFontは、Asset StoreのAntique PackというAssetのmail ray stuffを使いました〜
こんな感じのゲーム画面
【課題2】スコアアップを判定するオブジェクトを作成する
続いて障害物と障害物の間にオブジェクトを作成し、そこを通過した時にScoreを+1していきます〜まずは空オブジェクトを作成し、ScoreUpという名前をつけましょう〜
Create>Create Empty 名前はScoreUp
次にScoreUpオブジェクトにBox Collider2Dを付け、Is Triggerをtrueにしておいて下さい!
ScoreUpオブジェクトのInspector Is Triggerはtrue
続いて既にPrefab化したtreeオブジェクトを、一旦Hierarchyビューへ戻します〜そして次に、treeオブジェクトの子オブジェクトとして、ScoreUpオブジェクトを設定します〜
Prefab化したオブジェクトは一旦Hierarchyビューに戻さなければ、子オブジェクトを追加することができないのです〜
一旦Hierarchyビューへtreeプレファブを戻す
ScoreUpオブジェクトをtreeオブジェクトの子オブジェクトに設定する
元のtreeプレファブを削除し、Hierarchy上にあるtreeオブジェクトを再度Prefab
化する
一旦Prefabを削除してしまったので、moving_ObjについているMapScriptのpublic変数treePrefabを、再度指定してあげる必要があります〜
再度Prefabを指定
【課題3】加点する仕組みを実装する
それでは続いて、playerScriptにスコアアップ用のメソッドを加筆していきます〜以下ソースです〜
まずはpublic変数Scoreに、Scoreオブジェクトを指定しましょう〜
ドラッグ&ドロップ!
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の加点を実現させています〜
これでスコアアップが実現されました!
障害物の間をくぐり抜ける度に加点されていく
今回はここまでです〜
ありがとうございました〜
【Unity開発5】プレイヤーピヨを動かしたい!【フラッピーバード風:2】
【Unity開発5】前方に障害物を作り、くぐり抜けたい!【フラッピーバード風3】
【Unity開発5】ゲームにスコア機能を付けたい!【フラッピーバード風4】
【Unity開発5】タイトルとゲームオーバーを作りたい!【フラッピーバード風5】