🌐

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

はじめに

unityroomに投稿するゲームにスコアランキング機能を追加できます。
💡
スコアランキング機能自体の紹介はこちら スコアランキング機能
 
このページではスコアランキングの準備と実装方法を説明しています。

目次

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

unityroomでの準備

ゲームを登録する

  1. unityroomにログインし「ゲームを登録」ボタンからゲーム情報を登録してください
    1. すでに登録済みの場合は不要です
 

ゲーム設定ページを開く

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

APIを有効化する

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

認証用キーを作成する

  1. ゲーム設定ページのサイドメニューから を開きます。
  1. を押してキーを生成します。
 

スコアボードを作成する

  1. ゲーム設定ページのサイドメニューから を開きます。
  1. します。
    1. ゲームごとに最大2つまでスコアボードを作成できます。
  1. が後ほど必要になります。
    1. 💡
      ボードNoは1〜連番が自動的に割り振られます。 編集することで任意の数字に変更できます。
      💡
      複数のスコアボードを作成した場合、ゲームプレイ画面にはボードNo順に並びます
 

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

ゲーム設定ページのサイドバーにある「ゲームを表示」からゲームページへ移動できます。
スコアボードの作成が完了していれば、スコアランキングセクションとスコアボードが表示されます。(まだデータはありません)
もしこの時点で表示されていない場合はスコアボードの作成ができていない可能性がありますのでここまでの手順を改めてご確認ください。
 
ここまで問題なければUnityでの実装に進みます。
 

Unityでの実装

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

ゲーム(Unity)にスコア送信処理を実装します。
 
Unity用のライブラリを用意しましたので、ぜひご利用ください。
ライブラリの使い方は上記リンク先の説明(README)をご覧ください。
 
現時点ではスコア送信のみで、ゲーム内でランキングを取得したりはできません。
Unityエディタ上で実行した場合、サーバーには送信されず、下記のようなログが表示されます。
 
💡
1プレイの中でスコアが減ることがないゲームの場合、ゲームプレイ中にこまめにスコア送信を行うとより賑やかになります。 (同時にプレイしている他のプレイヤーの画面にリアルタイムに反映されていきます)
 
 

動作確認

アップロードと動作確認

  1. ゲームをWebGL形式でビルドし、unityroomにアップロードします。
  1. ゲームをプレイします。(スコア送信処理を呼び出します)
  1. ゲームページのスコアランキングセクションに自分のレコードが追加されれば成功です。
 
 
  • スコアランキング設定ページにも直近に登録されたレコードが表示されます。
    • ここから一括で削除(ランキングのリセット)ができます。

トラブルシューティング

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

エラーになる場合は下記を確認してください。
 
  1. ブラウザのネットワークログを確認
    1. スコア送信後にブラウザの開発者コンソールを開き、ネットワークタブを開きます。
      画像はChromeですが、他のブラウザでも大体似た感じです。
      scoresと名前のついた通信ログを探します。
      もしログがない場合はUnity側のスコア送信処理が呼ばれているか確認してください。
  1. Name(scores)をクリックして詳細を開きます
  1. ReponseタブまたはPreviewタブでサーバーからの応答を確認します。
    1. 成功している場合はstatus=okが返されます
    2. 失敗している場合は何かしらのエラーが返されます。
      1. 後述するエラーコードに従って対応してください。
 
unityroomのサーバーに到達できていない場合は全く違うエラーが表示されているかもしれません。上記で対応方法がわからない場合はご連絡ください。
 

エラーコード

 
APIエラーコード2023/5/11 0:562024/1/27 16:45APIエラー分類2023/5/11 0:562023/5/12 1:31