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 Package

Initialization

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);
};