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:
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",
{
if (result.IsError)
{
Debug.LogError($"Login failed: {result.Error.error_description}");
}
else
{
Debug.Log("Login successful!");
var tokenData = result.Value;
Debug.Log($"User ID: {tokenData.user_id}");
}
}
);
Login with Device ID
For headless accounts (guest login):
var user = AccelByteSDK.GetClientRegistry().GetApi().GetUser();
user.LoginWithDeviceIdV4(
{
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",
{
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;
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();
var userProfiles = apiClient.GetUserProfiles();
{
if (!result.IsError)
{
Debug.Log($"Display name: {result.Value.firstName}");
}
});
var wallet = apiClient.GetWallet();
{
if (!result.IsError)
{
Debug.Log($"Balance: {result.Value.balance}");
}
});
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()
{
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!");
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");
};
{
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())
{
}
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:
{
if (result.IsError)
{
Debug.LogError($"Error: {result.Error.Message}");
return;
}
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