In order to use Leaderboards for Time Based Rankings, we will simply multiply the time by a constant number, such as 1000. Once you get the Leaderboard, you then divide the score by the same constant.
Submit Score
float time = 522.31f;
float timebasedScore = time * 1000f;
string leaderboardKey = "timebased_leaderboardKey";
LootLockerSDKManager.SubmitScore("", (int)timebasedScore, leaderboardKey, (response) =>
{
if (!response.success)
{
Debug.Log("Could not submit score!");
Debug.Log(response.errorData.ToString());
return;
}
});
var leaderboardKey : String = "timebased_leaderboardKey";
var time : float = 522.31;
var timebasedScore : int = time * 1000;
var response = await LL_Leaderboards.SubmitScore.new(leaderboardKey, timebasedScore).send()
if(!response.success) :
# Request failed, handle errors
pass
else:
# Request succeeded, use response as applicable in your game logic
pass
Get Leaderboard List
string leaderboardKey = "timebased_leaderboardKey";
LootLockerSDKManager.GetScoreList(leaderboardKey, 10, (response) =>
{
if(response.success)
{
Debug.Log("Could not get scores!");
Debug.Log(response.errorData.ToString());
return;
}
foreach(var entries in response.items)
{
float timebasedScore = entries.score / 1000;
Debug.Log($"Player {entries.player.name} had a time of {timebasedScore} ranking them {entries.rank} on the Leaderboard");
}
});
var leaderboardKey : String = "timebased_leaderboardKey";
var response = await LL_Leaderboards.GetScoreList.new(leaderboardKey, count).send()
if(!response.success) :
# Request failed, handle errors
pass
else:
for leaderboardEntry in response.items:
var timebasedScore = leaderboardEntry.score / 1000.0;
print("Player " + leaderboardEntry.player.name + " had a time of " + timebasedScore +" ranking them " + leaderboardEntry.rank + "on the Leaderboard");
# Request succeeded, use response as applicable in your game logic
pass