User
The User module provides functionality for managing user authentication and profiles in your Unity game.
Overview
The User module allows you to:
- Handle user authentication via the Pixidus platform
- Manage user profiles
- Access user information (email, display name, avatar, coins)
- Track purchased in-game items
Classes
PixidusUser
The main user data class containing all user information.
Unity
public class PixidusUser
{
public string id; // Unique user identifier
public string email; // User's email address
public string display_name; // User's display name
public string avatarUrl; // URL to user's avatar image
public int coins; // User's coin balance
public List<PurchasedInGameItems> purchased_in_game_items;
}PurchasedInGameItems
Contains the user’s purchased items, separated by type.
Unity
public class PurchasedInGameItems
{
public List<string> persistent; // Items that persist (e.g., skins, characters)
public List<string> one_time; // One-time consumable items (e.g., power-ups)
}Methods
ShowAuthModal
Opens the authentication modal on the Pixidus website, allowing users to sign in or create an account.
Unity
// Show the authentication modal
PixidusSDK.User.ShowAuthModal();This method only works in WebGL builds. In the Unity Editor, it will log a debug message instead.
GetUser
Retrieves the current user’s information. Returns null if the user is not authenticated.
Unity
// Get current user
PixidusSDK.User.GetUser((user) => {
if (user != null)
{
Debug.Log($"User ID: {user.id}");
Debug.Log($"Email: {user.email}");
Debug.Log($"Display Name: {user.display_name}");
Debug.Log($"Avatar URL: {user.avatarUrl}");
Debug.Log($"Coins: {user.coins}");
// Check purchased items
if (user.purchased_in_game_items != null)
{
foreach (var items in user.purchased_in_game_items)
{
Debug.Log($"Persistent items: {string.Join(", ", items.persistent)}");
Debug.Log($"One-time items: {string.Join(", ", items.one_time)}");
}
}
}
else
{
Debug.Log("User not authenticated");
// Optionally show auth modal
PixidusSDK.User.ShowAuthModal();
}
});Example Usage
Here’s a complete example of implementing user authentication in your game:
Unity
using UnityEngine;
using UnityEngine.UI;
using TMPro;
using Pixidus;
public class UserManager : MonoBehaviour
{
public TMP_Text userNameText;
public TMP_Text coinsText;
public RawImage avatarImage;
public Button loginButton;
private void Start()
{
loginButton.onClick.AddListener(OnLoginButtonClicked);
RefreshUserInfo();
}
public void OnLoginButtonClicked()
{
PixidusSDK.User.ShowAuthModal();
}
public void RefreshUserInfo()
{
PixidusSDK.User.GetUser((user) => {
if (user != null)
{
userNameText.text = user.display_name;
coinsText.text = user.coins.ToString();
loginButton.gameObject.SetActive(false);
// Load avatar image
StartCoroutine(LoadAvatar(user.avatarUrl));
}
else
{
userNameText.text = "Guest";
coinsText.text = "0";
loginButton.gameObject.SetActive(true);
}
});
}
private IEnumerator LoadAvatar(string url)
{
using (var request = UnityWebRequestTexture.GetTexture(url))
{
yield return request.SendWebRequest();
if (request.result == UnityWebRequest.Result.Success)
{
avatarImage.texture = ((DownloadHandlerTexture)request.downloadHandler).texture;
}
}
}
}Support
Need help? Our support team is here for you:
Last updated on