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;
// Before any call
void StartSteam()
{
var steamStarted = SteamAPI.Init();
}
// Update every frame
void RunSteam()
{
SteamAPI.RunCallbacks();
}
// Test with User Data
void LoadUserData()
{
var name = SteamFriends.GetPersonaName();
var id = SteamUser.GetSteamID().m_SteamID;
}
Initialize API
Initialize API
Getting Started on Steamworks.NETSteamFriendsSteamUser
Don't forget to add an steam_appid.txt and login to an account owning the app.
// CAUTION: Only example code
using Steamworks;
// Before any call
void StartSteam()
{
var steamStarted = SteamAPI.Init();
}
// Update every frame
void RunSteam()
{
SteamAPI.RunCallbacks();
}
// Test with User Data
void LoadUserData()
{
var name = SteamFriends.GetPersonaName();
var id = SteamUser.GetSteamID().m_SteamID;
}
::/_graphics/labs/steam-logo-16-9.pngLeaderboards
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;
}
);
}
Leaderboards
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.