CAUTION: The examples are for a setup with Steamworks.NET.
Additionally you'll need a steam account with the rights for the app
and in your unity project (or in the build) a steam_appid.txt with the correct app id.
The steam client needs to be logged in with the correct user.
Finally, the examples are shortened to simple method calls, which would not work as is.
They need to be put into proper classes, most likely as Component/MonoBehaviour.
// CAUTION: Only example code
using Steamworks;
// Get a reference to the board
void FindBoard( string name )
{
SteamLeaderboard_t? leaderBoard;
var result = new CallResult<LeaderboardFindResult_t>();
result.Set( SteamUserStats.FindLeaderboard( name ),
( data, hasError ) =>
{
leaderBoard = ! hasError ? data.m_hSteamLeaderboard : null;
}
);
}
// Get a reference to a range of entries of a board
void GetEntries( SteamLeaderboard_t board,
ELeaderboardDataRequest type,
int start, int end )
{
SteamLeaderboardEntries_t? leaderboardEntries;
var result = new CallResult<LeaderboardScoresDownloaded_t>();
var cb = SteamUserStats.DownloadLeaderboardEntries( board, type, start, end );
result.Set( cb, ( data, hasError ) =>
{
leaderboardEntries = ! hasError ? data.m_hSteamLeaderboardEntries : null;
}
);
}
// Upload score and data to a leader board
void UploadScore( SteamLeaderboard_t board,
ELeaderboardUploadScoreMethod method,
int score, int[] data )
{
var result = new CallResult<LeaderboardScoreUploaded_t>();
var cb = SteamUserStats.UploadLeaderboardScore( board, method, score,
data, data.Length );
result.Set( cb, ( data, hasError ) =>
{
var scoreChanged = data.m_bScoreChanged;
var newRank = data.m_nGlobalRankNew;
var oldRank = data.m_nGlobalRankPrevious;
var score = data.m_nScore;
}
);
}
LOADING VIDEOLADE VIDEOmedia-video videomedia-image imgmedia-video videomedia-image imgparent:media-galleryLeaderboards
Leaderboards
LeaderBoards Partners Website AppLeaderBoards Doc
// CAUTION: Only example code
using Steamworks;
// Get a reference to the board
void FindBoard( string name )
{
SteamLeaderboard_t? leaderBoard;
var result = new CallResult<LeaderboardFindResult_t>();
result.Set( SteamUserStats.FindLeaderboard( name ),
( data, hasError ) =>
{
leaderBoard = ! hasError ? data.m_hSteamLeaderboard : null;
}
);
}
// Get a reference to a range of entries of a board
void GetEntries( SteamLeaderboard_t board,
ELeaderboardDataRequest type,
int start, int end )
{
SteamLeaderboardEntries_t? leaderboardEntries;
var result = new CallResult<LeaderboardScoresDownloaded_t>();
var cb = SteamUserStats.DownloadLeaderboardEntries( board, type, start, end );
result.Set( cb, ( data, hasError ) =>
{
leaderboardEntries = ! hasError ? data.m_hSteamLeaderboardEntries : null;
}
);
}
// Upload score and data to a leader board
void UploadScore( SteamLeaderboard_t board,
ELeaderboardUploadScoreMethod method,
int score, int[] data )
{
var result = new CallResult<LeaderboardScoreUploaded_t>();
var cb = SteamUserStats.UploadLeaderboardScore( board, method, score,
data, data.Length );
result.Set( cb, ( data, hasError ) =>
{
var scoreChanged = data.m_bScoreChanged;
var newRank = data.m_nGlobalRankNew;
var oldRank = data.m_nGlobalRankPrevious;
var score = data.m_nScore;
}
);
}
All social media brands are registrated trademarks and belong to their respective owners.