
Sushi Gameにスコアランキングを導入してみた
先日作ったスイカ風の落ちものゲームのSushi Gameにunityroomのスコアランキング機能を導入してみた!
unityroomに投稿したゲームで、スコアランキング機能に対応すれば、ゲームページにスコアボードが表示され、他のプレイヤーとハイスコアで競うことができるので、よりゲームが楽しくなるのでぜひ対応しておきたい!(PCの場合はリアルタイム反映もあるっぽい)
スコアランキング機能対応
ゲームにスコアランキング機能を導入するには、基本的に公式ヘルプに沿ってやっていけばよい。
まずはゲーム設定ページの「API利用設定」をONにして、APIキーを発行する。

次に「スコアランキング」を開いて「スコアボードを新規作成」でスコアボードを登録する。スコアボードのタイトルや単位、並び順を設定できて、さらにどのような場合にスコアを上書きするのか(ハイスコア更新 or 常に更新)も設定できる。


ゲーム設定ページでの設定が終わると、次はUnity Client Libraryというunityroom APIを利用するためのライブラリを導入する。今回はPackageManager経由でgit URLから追加した。
使い方も簡単で、UnityroomApiClientというPrefabをシーンに配置して、インスペクタでHmac Keyに先程発行したAPIキーを入力すればよい。
スコア送信
今回はBest Scoreを更新した時にPlayerPrefsにスコアを保存しているので、それに合わせて同時にハイスコアとしてスコアボードにもスコアを送信するようにした。
public void UpdateBestScore()
{
int score = int.Parse(scoreText.text);
if (score > PlayerPrefs.GetInt("BestScore"))
{
// ボードNo.1にスコアを降順で送信する
UnityroomApiClient.Instance.SendScore(1, score, ScoreboardWriteMode.HighScoreDesc);
PlayerPrefs.SetInt("BestScore", score);
bestScoreText.text = score.ToString();
}
}
これでSushi Gameにスコアランキング機能を導入できた!実際にプレイしてみると、無事ハイスコアが記録されるようになって、よりゲームらしくなった!
