Loading...
Searching...
No Matches
Quick Start Guide

This guide will help you get started with the AccelByte Unity SDK.

SDK Initialization

The AccelByte SDK initializes automatically when your Unity application starts. You don't need to manually initialize it.

To access SDK functionality, use the static AccelByteSDK class:

// Get the API client
var apiClient = AccelByteSDK.GetClientRegistry().GetApi();
Definition ABUtilities.cs:16
Definition AccelByteServiceVersion.cs:14
Definition AccelByteMessagingSystemModels.cs:13

User Login

Login with Email/Username

The most common authentication method is email and password login:

var user = AccelByteSDK.GetClientRegistry().GetApi().GetUser();
user.LoginWithEmailV4(
email: "user@example.com",
password: "yourpassword",
loginCallback: (Result<TokenData, OAuthError> result) =>
{
if (result.IsError)
{
// Handle login error
Debug.LogError($"Login failed: {result.Error.error_description}");
}
else
{
// Login successful
Debug.Log("Login successful!");
var tokenData = result.Value;
Debug.Log($"User ID: {tokenData.user_id}");
}
}
);
Definition Result.cs:724

Login with Device ID

For headless accounts (guest login):

var user = AccelByteSDK.GetClientRegistry().GetApi().GetUser();
user.LoginWithDeviceIdV4(
loginCallback: (Result<TokenData, OAuthError> result) =>
{
if (!result.IsError)
{
Debug.Log("Device login successful!");
}
}
);

Login with Platform Token

For third-party platform authentication (Steam, PlayStation, Xbox, etc.):

user.LoginWithOtherPlatformV4(
platformType: PlatformType.Steam,
platformToken: "platform_access_token",
loginCallback: (Result<TokenData, OAuthError> result) =>
{
if (!result.IsError)
{
Debug.Log("Platform login successful!");
}
}
);

Accessing User Session

After successful login, you can access the user session:

var apiClient = AccelByteSDK.GetClientRegistry().GetApi();
var session = apiClient.GetUser().Session;
// Check if user is logged in
if (session.IsValid())
{
string userId = session.UserId;
string authToken = session.AuthorizationToken;
Debug.Log($"Logged in as: {userId}");
}

Using SDK Services

Once authenticated, you can access various SDK services:

var apiClient = AccelByteSDK.GetClientRegistry().GetApi();
// User Profile
var userProfiles = apiClient.GetUserProfiles();
userProfiles.GetUserProfile((Result<UserProfile> result) =>
{
if (!result.IsError)
{
Debug.Log($"Display name: {result.Value.firstName}");
}
});
// Wallet
var wallet = apiClient.GetWallet();
wallet.GetWalletInfoByCurrencyCode("GOLD", (Result<WalletInfo> result) =>
{
if (!result.IsError)
{
Debug.Log($"Balance: {result.Value.balance}");
}
});
// Lobby (Real-time features)
var lobby = apiClient.GetLobby();
lobby.Connect();

Complete Example

Here's a complete example showing initialization and login:

using UnityEngine;
public class AccelByteExample : MonoBehaviour
{
void Start()
{
// SDK is automatically initialized
LoginUser();
}
void LoginUser()
{
var user = AccelByteSDK.GetClientRegistry().GetApi().GetUser();
user.LoginWithEmailV4(
email: "user@example.com",
password: "password123",
loginCallback: OnLoginComplete
);
}
void OnLoginComplete(Result<TokenData, OAuthError> result)
{
if (result.IsError)
{
Debug.LogError($"Login failed: {result.Error.error_description}");
return;
}
Debug.Log("Login successful!");
// Get user profile after login
GetUserProfile();
}
void GetUserProfile()
{
var userProfiles = AccelByteSDK.GetClientRegistry().GetApi().GetUserProfiles();
userProfiles.GetUserProfile((Result<UserProfile> result) =>
{
if (!result.IsError)
{
Debug.Log($"Welcome, {result.Value.firstName}!");
}
});
}
}

Session Management

The SDK automatically manages token refresh. You can listen to session events:

var user = AccelByteSDK.GetClientRegistry().GetApi().GetUser();
user.OnLoginSuccess += (TokenData tokenData) =>
{
Debug.Log("User logged in successfully");
};
user.OnLoginFailed += (OAuthError error) =>
{
Debug.LogError($"Login failed: {error.error_description}");
};
Definition ErrorResponseModels.cs:93
Definition UserModels.cs:75

Logout

To logout the current user:

var user = AccelByteSDK.GetClientRegistry().GetApi().GetUser();
user.Logout((Result result) =>
{
if (!result.IsError)
{
Debug.Log("Logout successful");
}
});

Common Patterns

Checking Login Status

var apiClient = AccelByteSDK.GetClientRegistry().GetApi();
if (apiClient.GetUser().Session.IsValid())
{
// User is logged in
}

Multiple API Clients

You can create multiple API client instances for different users:

var registry = AccelByteSDK.GetClientRegistry();
var client1 = registry.GetApi("player1");
var client2 = registry.GetApi("player2");

Error Handling

Always check for errors in callbacks:

void OnApiCallback(Result<DataType> result)
{
if (result.IsError)
{
Debug.LogError($"Error: {result.Error.Message}");
return;
}
// Success - use result.Value
var data = result.Value;
}

Next Steps

  • Explore the Files section to see all available SDK APIs
  • Check out specific service documentation for detailed features
  • Visit the Developer Portal for more examples and guides
  • Review the API Reference for detailed API documentation