unityroomに投稿するゲームにスコアランキング機能を追加できます。.
スコアランキング機能自体の説明はこちら
https://tayori.com/q/unityroom-help-center/detail/560018/
このページではスコアランキングの準備と実装方法を説明しています。
unityroomでの準備
まずはunityroom上での準備を行います。
ゲームを登録する
unityroomにログインし「ゲームを登録」ボタンからゲーム情報を登録してください
すでに登録済みの場合は不要です
ゲーム設定ページを開く
投稿ゲーム一覧から対象ゲームの設定画面へ行きます
APIを有効化する
- ゲーム設定ページのサイドメニューから
API利用設定
を開きます。 - 「APIを使用する」を選択して保存します。
認証用キーを作成する
- ゲーム設定ページのサイドメニューから
APIキー
を開きます。 -
HMAC認証用キーを発行する
を押してキーを生成します。
スコアボードを作成する
ゲーム設定ページのサイドメニューから スコアランキング を開きます。
スコアボードを新規作成 します。
"HMAC認証用キー" "ボードNo" "スコアの並び順" が後ほど必要になります。
※ボードNoは1〜連番が自動的に割り振られます。編集することで任意の数字に変更できます。
※複数のスコアボードを作成した場合、ゲームプレイ画面にはボードNo順に並びます。
ここまでの設定を確認する
ゲーム設定ページのサイドバーにある「ゲームを表示」からゲームページへ移動できます。
スコアボードの作成が完了していれば、スコアランキングセクションとスコアボードが表示されます。(まだデータはありません)
もしこの時点で表示されていない場合はスコアボードの作成ができていない可能性があります。ここまでの手順を再度ご確認ください。
ここまで問題なければUnityでの実装に進みます。
Unityでの実装
ここからはUnityでの操作です。
スコア送信機能を実装する(Unity)
ゲーム(Unity)にスコア送信処理を実装します。
Unity用のライブラリを用意しましたので、ぜひご利用ください。
https://github.com/naichilab/unityroom-client-library
ライブラリの使い方は上記リンク先の説明(README)をご覧ください。
現時点ではスコア送信のみで、ゲーム内でランキングを取得したりはできません。
Unityエディタ上で実行した場合、サーバーには送信されず、下記のようなログが表示されます。
1プレイの中でスコアが減ることがないゲームの場合、ゲームプレイ中にこまめにスコア送信を行うとより賑やかになります。
(同時にプレイしている他のプレイヤーの画面にリアルタイムに反映されていきます)
動作確認
アップロードと動作確認
- ゲームをWebGL形式でビルドし、unityroomにアップロードします。
- ゲームをプレイします。(スコア送信処理を呼び出します)
- ゲームページのスコアランキングセクションに自分のレコードが追加されれば成功です。
スコアランキング設定ページにも直近に登録されたレコードが表示されます。
ここからスコアの編集や一括削除が行えます。
トラブルシューティング
スコア登録がされない場合
エラーになる場合は下記を確認してください。
- ブラウザのネットワークログを確認
スコア送信後にブラウザの開発者コンソールを開き、ネットワークタブを開きます。
画像はChromeですが、他のブラウザでも大体似た感じです。 scoresと名前のついた通信ログを探します。 もしログがない場合はUnity側のスコア送信処理が呼ばれているか確認してください。
- Name(scores)をクリックして詳細を開きます
- ReponseタブまたはPreviewタブでサーバーからの応答を確認します。
・成功している場合はstatus=okが返されます
・失敗している場合は何かしらのエラーが返されます。
unityroomのサーバーに到達できていない場合は全く違うエラーが表示されているかもしれません。上記で対応方法がわからない場合はご連絡ください。