Unityに関連する記事です

 無事にゲームをクリアした場合、あるいはゲームオーバーになったしまった場合に
それまでのユーザーのゲームの成績を表示するためのリザルト機能の実装を行います。



<実装動画>
動画ファイルへのリンク



設計


 まずはリザルトとして表示させたい内容の設計を行い、専用のポップアップを UI として作成します。

 その後、特定の状態になった際に、このリザルト用ポップアップを表示して、
それまでのユーザーの成績を一覧表示させるようにします。

 リザルト表示は動的に制御する部分を設けて、成績の内容が順番に1つずつ表示されるようにしたり、
数字であればカウントアップするアニメを付けるなど、ユーザーが見ていて楽しい設計にすることを心がけます。

 これらには DOTween の機能を利用することで実装が可能ですので、そちらの学習も合わせて行うようにします。


リザルト表示用ポップアップを作成する


 表示する内容は任意です。
 
 ここではサンプルになりますので、自分のイメージしている内容とレイアウトで作成してみてください。

 今回は GameData クラスで管理している、獲得したアイテムの合計数と、各アイテムに設定されているスコアの合計値を表示させる設計です。

 下記には参考用の画像を提示しますが、この通りである必要はありません。


完成図





ヒエラルキー画像



ヒエラルキー画像



ResultSet ゲームオブジェクト









ResultPopUp ゲームオブジェクト









各子オブジェクト


 Text コンポーネントを利用するゲームオブジェクトは、フォントの設定の共有化をおこなえるように
専用のプレファブを1つ作成しておいてそちらを適用するようにした方が利便性が高いです。(今回は利用していません)

 また、Result の文字を Image で1文字ずつ作成しておくことで、1つずつアニメ演出させることができますが、
この部分については割愛しています。Image コンポーネントを持つゲームオブジェクトと、対応する空のゲームオブジェクトをそれぞれ作成してください。
















































ResultPopUp スクリプトを作成する


 リザルト表示される内容は、ゲームをプレイしたユーザーのゲーム内容によって毎回変わります。
そのため、表示するタイトルなど以外は、毎回異なる情報になるため、専用のスクリプトを使ってこれらの情報を制御し、
ユーザーの成績を反映した内容でリザルト表示を行えるようにします。

 ここではそのためのスクリプトを作成します。
出来れば自分で考えて、まずはスクリプトを作成することに挑戦してみてください。


ResultPopUp.cs

<= クリックすると開きます。


 スクリプトを作成したらセーブします。


ResultPopUp ゲームオブジェクトに ResultPopUp スクリプトをアタッチして設定を行う


 作成した ResultPopUp スクリプトを ResultPopUp ゲームオブジェクトにアタッチして、必要な情報をアサインしてください。


インスペクター画像



インスペクター画像



 今回はプレファブにせずに、画面内に配置しておく設定にしています。

 プレファブにしておいて、タイミングに合わせて生成する方法でも構いません。


GameSceneManager スクリプトを修正する


 残り時間が 0 になった場合にリザルト表示を行う機能を実装します。
ResultPopUp ゲームオブジェクトをゲーム画面に配置して非表示にしておき、
残り時間が 0 になったタイミングで表示して、値などの制御を行うようにしています。

 この部分で、ゲームクリアとゲームオーバーの両方のケースに対応するようになっています。


GameSceneManager.cs

<= クリックすると開きます


 スクリプトを修正したらセーブします。


PlayerController スクリプトを修正する


 PlayerController スクリプトを修正するか、OVRPlayerController ゲームオブジェクトにアタッチされているスクリプトに処理を追記します。


PlayerController.cs

 <= クリックすると開きます

 

ゲームを実行して動作を確認する


 OVRPlayerController ゲームオブジェクトにアタッチされている PlayerController スクリプトに
新しい情報を追加されていますのでアサインします。

 残り時間が 0 になった場合と、ゴール地点に到着した場合の両方のケースでデバッグを行ってください。

 どちらの場合にもリザルト表示が実行されれば制御成功です。
デバッグする際には GameData クラスにインベントリの情報を入れておくといいでしょう。


インスペクター画像



 その後の処理については未実装ですので、タイトルシーンに戻すようにしたり、自分のイメージする処理のサイクルの実装を行ってください。
 


 以上でこの手順は終了です。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu



技術/知識(実装例)

2Dおはじきゲーム(発展編)

2D強制横スクロールアクション(発展編)

3Dダイビングアクション(発展編)

2Dタップシューティング(拡張編)

レースゲーム(抜粋)

2D放置ゲーム(発展編)

3Dレールガンシューティング(応用編)

3D脱出ゲーム(抜粋)

2Dリアルタイムストラテジー

2Dトップビューアドベンチャー(宴アセット使用)

3Dタップアクション(NavMeshAgent 使用)

2Dトップビューアクション(カエルの為に〜、ボコスカウォーズ風)

VideoPlayer イベント連動の実装例

VideoPlayer リスト内からムービー再生の実装例(発展)

AR 画像付きオブジェクト生成の実装例

AR リスト内から生成の実装例(発展)

private



このサイト内の作品はユニティちゃんライセンス条項の元に提供されています。

管理人/副管理人のみ編集できます