TOPゲームを作る・投稿するスコアランキング機能の実装方法
最終更新日 : 2024/01/15

スコアランキング機能の実装方法

unityroomに投稿するゲームにスコアランキング機能を追加できます。.

スコアランキング機能自体の説明はこちら
https://tayori.com/q/unityroom-help-center/detail/560018/

このページではスコアランキングの準備と実装方法を説明しています。

unityroomでの準備

まずはunityroom上での準備を行います。

ゲームを登録する

unityroomにログインし「ゲームを登録」ボタンからゲーム情報を登録してください

すでに登録済みの場合は不要です

ゲーム設定ページを開く

投稿ゲーム一覧から対象ゲームの設定画面へ行きます

Untitled (6).png

APIを有効化する

  1. ゲーム設定ページのサイドメニューから API利用設定 を開きます。
  2. 「APIを使用する」を選択して保存します。
Untitled (7).png

認証用キーを作成する

  1. ゲーム設定ページのサイドメニューから APIキー を開きます。
  2. HMAC認証用キーを発行する を押してキーを生成します。
Untitled (8).png

スコアボードを作成する

ゲーム設定ページのサイドメニューから スコアランキング を開きます。

Untitled (9).png

スコアボードを新規作成 します。

Untitled (10).png

"HMAC認証用キー" "ボードNo" "スコアの並び順" が後ほど必要になります。

※ボードNoは1〜連番が自動的に割り振られます。編集することで任意の数字に変更できます。
※複数のスコアボードを作成した場合、ゲームプレイ画面にはボードNo順に並びます。

スクリーンショット 2023-06-11 22.32.08.png

ここまでの設定を確認する

ゲーム設定ページのサイドバーにある「ゲームを表示」からゲームページへ移動できます。

スコアボードの作成が完了していれば、スコアランキングセクションとスコアボードが表示されます。(まだデータはありません)

もしこの時点で表示されていない場合はスコアボードの作成ができていない可能性があります。ここまでの手順を再度ご確認ください。

スクリーンショット 2023-09-24 22.44.10.png

ここまで問題なければUnityでの実装に進みます。

Unityでの実装

ここからはUnityでの操作です。

スコア送信機能を実装する(Unity)

ゲーム(Unity)にスコア送信処理を実装します。

Unity用のライブラリを用意しましたので、ぜひご利用ください。
https://github.com/naichilab/unityroom-client-library
ライブラリの使い方は上記リンク先の説明(README)をご覧ください。

現時点ではスコア送信のみで、ゲーム内でランキングを取得したりはできません。
Unityエディタ上で実行した場合、サーバーには送信されず、下記のようなログが表示されます。

Untitled (11).png

1プレイの中でスコアが減ることがないゲームの場合、ゲームプレイ中にこまめにスコア送信を行うとより賑やかになります。
(同時にプレイしている他のプレイヤーの画面にリアルタイムに反映されていきます)

動作確認

アップロードと動作確認

  1. ゲームをWebGL形式でビルドし、unityroomにアップロードします。
  2. ゲームをプレイします。(スコア送信処理を呼び出します)
  3. ゲームページのスコアランキングセクションに自分のレコードが追加されれば成功です。
Untitled (12).png

スコアランキング設定ページにも直近に登録されたレコードが表示されます。
ここからスコアの編集や一括削除が行えます。

スクリーンショット 2023-05-08 1.57.15.png

トラブルシューティング

スコア登録がされない場合

エラーになる場合は下記を確認してください。

  1. ブラウザのネットワークログを確認
    スコア送信後にブラウザの開発者コンソールを開き、ネットワークタブを開きます。
    画像はChromeですが、他のブラウザでも大体似た感じです。 scoresと名前のついた通信ログを探します。 もしログがない場合はUnity側のスコア送信処理が呼ばれているか確認してください。
スクリーンショット 2023-04-29 22.19.24.png
  1. Name(scores)をクリックして詳細を開きます
スクリーンショット 2023-04-29 22.21.34.png
  1. ReponseタブまたはPreviewタブでサーバーからの応答を確認します。

・成功している場合はstatus=okが返されます
・失敗している場合は何かしらのエラーが返されます。

Untitled (13).png

unityroomのサーバーに到達できていない場合は全く違うエラーが表示されているかもしれません。上記で対応方法がわからない場合はご連絡ください。