![見出し画像](https://assets.st-note.com/production/uploads/images/142695173/rectangle_large_type_2_ca84889a632ae8b4096742bc899542f5.png?width=800)
Sushi Gameにスコアランキングを導入してみた
先日作ったスイカ風の落ちものゲームのSushi Gameにunityroomのスコアランキング機能を導入してみた!
unityroomに投稿したゲームで、スコアランキング機能に対応すれば、ゲームページにスコアボードが表示され、他のプレイヤーとハイスコアで競うことができるので、よりゲームが楽しくなるのでぜひ対応しておきたい!(PCの場合はリアルタイム反映もあるっぽい)
スコアランキング機能対応
ゲームにスコアランキング機能を導入するには、基本的に公式ヘルプに沿ってやっていけばよい。
まずはゲーム設定ページの「API利用設定」をONにして、APIキーを発行する。
![](https://assets.st-note.com/img/1716121613648-WQ0Hp3YbmA.png?width=800)
次に「スコアランキング」を開いて「スコアボードを新規作成」でスコアボードを登録する。スコアボードのタイトルや単位、並び順を設定できて、さらにどのような場合にスコアを上書きするのか(ハイスコア更新 or 常に更新)も設定できる。
![](https://assets.st-note.com/img/1716121636825-Inv0dWeSjA.png?width=800)
![](https://assets.st-note.com/img/1716121643214-xJLtZwjtQK.png?width=800)
ゲーム設定ページでの設定が終わると、次は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にスコアランキング機能を導入できた!実際にプレイしてみると、無事ハイスコアが記録されるようになって、よりゲームらしくなった!
![](https://assets.st-note.com/img/1716121680310-NZMJWs21Ha.png?width=800)
この記事が気に入ったらサポートをしてみませんか?