Back to SDK Docs
Unity SDK
C# SDK for Unity 2021.3+ with full platform support
v2.1.0Unity 2021.3+iOS / Android / WebGL
Installation
Install the Funstack Unity SDK via the Unity Package Manager or download the .unitypackage directly.
Installation Methods
// Option 1: Unity Package Manager (Recommended)
// Add to Packages/manifest.json:
{
"dependencies": {
"com.xp-platform.sdk": "https://github.com/xp-platform/unity-sdk.git#v2.1.0"
}
}
// Option 2: Download .unitypackage
// Download from releases and import via Assets > Import PackageInitialization
Initialize the SDK in your main game script. We recommend doing this in Start() or Awake().
GameManager.cs
using XPPlatform;
using UnityEngine;
public class GameManager : MonoBehaviour
{
void Start()
{
// Initialize SDK with your API key
XPSDK.Initialize(new XPConfig
{
ApiKey = "your-api-key",
Environment = XPEnvironment.Testnet,
EnableDebugLogging = true
});
// Listen for SDK ready
XPSDK.OnReady += () => {
Debug.Log("XP SDK Ready!");
};
}
}Authentication
Support both guest logins (device-based) and wallet logins (for NFT features). Guest accounts can be upgraded to wallet accounts at any time.
Authentication Examples
// Guest login (no wallet required)
await XPSDK.Auth.LoginAsGuest();
Debug.Log($"Logged in: {XPSDK.Auth.PlayerId}");
// Wallet login (for NFT features)
await XPSDK.Auth.ConnectWallet();
Debug.Log($"Wallet: {XPSDK.Auth.WalletAddress}");
// Check login status
if (XPSDK.Auth.IsLoggedIn)
{
var balance = await XPSDK.GetXPBalance();
Debug.Log($"XP Balance: {balance}");
}XP & Progression
Track player events and award XP. All XP transactions are validated server-side and recorded on-chain.
Progression Tracking
// Track XP-earning events
await XPSDK.Progression.TrackEvent("level_complete", new {
level = 5,
score = 12500,
time = 120.5f
});
// Award XP directly (server-validated)
await XPSDK.Progression.AwardXP(100, "Boss defeated");
// Get current XP and level
var stats = await XPSDK.Progression.GetStats();
Debug.Log($"Level: {stats.Level}, XP: {stats.TotalXP}");Rewarded Ads
Show rewarded video ads to let players earn XP. The SDK handles ad mediation, validation, and reward distribution.
Rewarded Ads Integration
// Check if rewarded ad is available
bool adReady = XPSDK.Ads.IsRewardedAdReady();
// Show rewarded ad
if (adReady)
{
var result = await XPSDK.Ads.ShowRewardedAd();
if (result.Success)
{
Debug.Log($"Earned {result.XPReward} XP!");
// XP is automatically credited to player
}
}
// Listen for ad events
XPSDK.Ads.OnAdCompleted += (reward) => {
ShowRewardPopup(reward.XPAmount);
};