Displaying a Specific Players Ranking Using the Leaderboard v1 (Legacy)
Last updated on December 6, 2023
概要
リーダーボードサービスでは、リーダーボードを表示してプレイヤーのランキングに関する情報を提示することで、プレイヤー間に競争的な雰囲気を作り出すことができます。
目標
このセクションでは、SDK を使用してリーダーボードを取得する方法、または特定のプレイヤーのランキングのみを取得する方法を説明します。
前提条件
- AccelByte 管理者ポータルにアクセスできる。
- Unreal 用または Unity 用 AccelByte SDK にアクセスできる。
- AccelByte リーダーボード API ドキュメント にアクセスして詳細を参照できる。
リーダーボードのランキングを表示
リーダーボードのランキングを表示するには、リーダーボードのデータを取得する必要があります。リーダーボードの特定のライフサイクル (毎日、毎週、毎月など) のデータが返されます。また、データの取得対象とするプレイヤーの数に制限を指定することもできます (トップ 10、トップ 50 など)。また、複数ページにリーダーボードを表示する場合は、オフセットを指定して、次の 10 件、次の 50 件などを取得できます。
次の関数を使用すると、リーダーボードのランキングを取得できます。
- Unreal Engine
- Unity
Unreal SDK - リーダーボードのランキングを取得
FString LeaderboardCode = FString("SomeLeaderboardCode");
EAccelByteLeaderboardTimeFrame TimeFrame = EAccelByteLeaderboardTimeFrame::ALL_TIME;
int32 Offset = 0;
int32 Limit = 99;
FRegistry::Leaderboard.GetRankings(LeaderboardCode, TimeFrame, Offset, Limit, THandler<FAccelByteModelsLeaderboardRankingResult>::CreateLambda([](const FAccelByteModelsLeaderboardRankingResult& Result)
{
// Do something if GetRankings has been successful
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if GetRankings has an error
UE_LOG(LogTemp, Log, TEXT("Error GetRankings, Error Code: %d Error Message: %s"), ErrorCode, *ErrorMessage);
}));
Unity SDK - リーダーボードのランキングを取得
string leaderboardCode = "SomeLeaderboardCode";
LeaderboardTimeFrame timeFrame= LeaderboardTimeFrame.ALL_TIME;
int offset = 0;
int limit = 99;
AccelBytePlugin.GetLeaderboard().GetRankings(leaderboardCode, timeFrame, offset, limit, result =>
{
if (result.IsError)
{
// Do something if GetRankings has an error
Debug.Log($"Error GetRankings, Error Code: {result.Error.Code} Error Message: {result.Error.Message}");
}
else
{
// Do something if GetRankings has been successful
}
});
プレイヤーのランキングを表示
特定のプレイヤーのランクを表示したり、強調したりできます。
次の関数を使用すると、ユーザー ID を使用して特定のプレイヤーのランキングを取得できます。
- Unreal Engine
- Unity
Unreal SDK - 特定のプレイヤーのランキングを取得
FString UserId = FString("SomeUserId");
FString LeaderboardCode = FString("SomeLeaderboardCode");
FRegistry::Leaderboard.GetUserRanking(UserId, LeaderboardCode, THandler<FAccelByteModelsUserRankingData>::CreateLambda([](const FAccelByteModelsUserRankingData& Result)
{
// Do something if GetUserRanking has been successful
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if GetUserRanking has an error
UE_LOG(LogTemp, Log, TEXT("Error GetUserRanking, Error Code: %d Error Meessage: %s"), ErrorCode, *ErrorMessage);
}));
Unity SDK - 特定のプレイヤーのランキングを取得
string userId = "SomeUserId";
string leaderboardCode = "SomeLeaderboardCode";
AccelBytePlugin.GetLeaderboard().GetUserRanking(userId, leaderboardCode, result =>
{
if (result.IsError)
{
// Do something if GetUserRanking has an error
Debug.Log($"Error GetUserRanking, Error Code: {result.Error.Code} Error Message: {result.Error.Message}");
}
else
{
// Do something if GetUserRanking has been successful
}
});