A comprehensive Unity SDK for integrating CrateBytes backend services into your games. This SDK provides authentication, session management, leaderboards, and player metadata functionality.
The SDK includes a built-in logging system that can be enabled/disabled:Via Inspector:
Select the GameObject with the CrateBytesSDK component
Check/uncheck the “Enable Logging” field
Via Code:
Copy
// Enable loggingCrateBytesSDK.Instance.enableLogging = true;// Or use the logger directlyCrateBytesLogger.Enabled = true;// Disable logging (recommended for production)CrateBytesLogger.Enabled = false;
Note: Logging is disabled by default for production builds. Enable only when debugging.
// The SDK will automatically create a singleton instancevar sdk = CrateBytesSDK.Instance;// Configure with your project settingssdk.Initialize("https://api.cratebytes.com/api/game", "your-public-key");
// Define your player data structure[Serializable]public class PlayerData{ public int Level { get; set; } public int Experience { get; set; } public string[] Achievements { get; set; }}// Save player datavar playerData = new PlayerData{ Level = 5, Experience = 1250, Achievements = new[] { "FirstWin", "SpeedRunner" }};yield return CrateBytesSDK.Instance.Metadata.SetPlayerDataObject(playerData, (response) =>{ if (response.Success) { Debug.Log("Player data saved!"); }});// Retrieve player datayield return CrateBytesSDK.Instance.Metadata.GetPlayerData<PlayerData>((response) =>{ if (response.Success && response.Data != null) { Debug.Log($"Level: {response.Data.Level}, XP: {response.Data.Experience}"); }});