【Unity】スコアランキングを作りたい – LeaderBoard

以前の記事【流流鍛メイキング】で省略したスコアランキングの部分になります。

みんなと遊べる要素はあるだけで楽しいので、開発中のゲームにはぜひ組み込んでみてください。

ゲーム内に組み込まれているタイプが好きなので、看板風にしました

左側が自分の近くのランキングで、右側が上位のランキングです

Unity公式のLeaderboardsという機能をつかっています

はじめに

Unityのサイトにログインして、LeaderBoards機能を有効にします
製品 > LeaderBoards > Launch から、IDリセット条件を決めておきます。

機能のインストール

UnityのPackageManagerから、Leaderboardsの機能をインストールします。検索窓に”Leader”と入れると出ます。

接続

公式のコードです

public class LeaderboardsSample : MonoBehaviour
{
  private async void Awake()
    {
        await UnityServices.InitializeAsync();
        await AuthenticationService.Instance.SignInAnonymouslyAsync();
    }
}

初期化と接続をします。通信なので処理がすぐに完了しないため、非同期のしるしとして async / await を設定します。

書き込み

公式のコードです(日本語だと404エラーになっとる…)

public async void AddScore(string leaderboardId, int score)
{
    var playerEntry = await LeaderboardsService.Instance
        .AddPlayerScoreAsync(leaderboardId, score);
    Debug.Log(JsonConvert.SerializeObject(playerEntry));
}

実行後、UnityCrowdのLeaderboardを見て、データが追加されていることを確認してみてください。

読み取り

同じく公式のコードです。リンク先には、近しい順位を取得するコードも載っています。

public async void GetScores(string leaderboardId)
{
    var scoresResponse = await LeaderboardsService.Instance
        .GetScoresAsync(leaderboardId);
    Debug.Log(JsonConvert.SerializeObject(scoresResponse));
}

表示

前項レスポンスは文字と数字の組み合わせなので、結果をUI系のコンポーネントに貼り付けるとそのまま表示できます。

自分のランクが分かるように、自分のIDと一致している場合は色を変えています。

おわりに

おつかれさまでした!

競い合えるゲームをつくって
みんなと一緒に盛り上げていきましょう~

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA