Get started

To use Authentication, you need to:

  1. Sign up for UGS.
  2. Link your dashboard to a Unity Editor project.
  3. Install the SDK in your game code.
  4. Initialize the SDK.

Sign up

If you don't have a Unity account, create one and create a new project to sign up for Unity Gaming Services.

Important: Only Organization Owners can sign up for Authentication.

  1. Sign into the Unity Cloud Dashboard.
  2. Select Administration in the side panel.
  3. Select Sign Up in the top banner and follow the instructions.

Link your project to a Unity Cloud project in the Unity Editor through a project ID. Follow these steps to get your project ID.

  1. In the Unity Editor menu, select Edit > Project Settings > Services tab.
  2. If you’re not already signed in with your Unity ID, either create a new Unity ID or sign in.
  3. To create a new project, select your organization and select Create. To link to an existing project, select I already have a Unity Project ID. Then, select your organization and project from the dropdown, and select Link.

Now you can find your project ID from the Settings tab in the Services window.

Install the SDK

To install the latest Authentication package for Unity:

  1. In the Unity Editor, open Window > Package Manager.
  2. In the Package Manager, select the Unity Registry list view.
  3. Search for Authentication, or locate it in the package list.
  4. Select the package, then select Install.

Refer to the Package Manager documentation for more information.

Initialize the Unity Services SDK

To implement Unity Authentication in your game, initialize all the Unity Services SDKs included in the project following this code snippet:

using System;
using Unity.Services.Core;
using UnityEngine;

public class InitializationExample : MonoBehaviour
{
	async void Awake()
	{
		try
		{
			await UnityServices.InitializeAsync();
		}
		catch (Exception e)
		{
			Debug.LogException(e);
		}
	}
}

Register authentication events

To receive updates about the status of your player, register a function to the SignedIn, SignInFailed and SignedOut event handlers.

// Setup authentication event handlers if desired
void SetupEvents() {
  AuthenticationService.Instance.SignedIn += () => {
    // Shows how to get a playerID
    Debug.Log($"PlayerID: {AuthenticationService.Instance.PlayerId}");

    // Shows how to get an access token
    Debug.Log($"Access Token: {AuthenticationService.Instance.AccessToken}");

  };

  AuthenticationService.Instance.SignInFailed += (err) => {
    Debug.LogError(err);
  };

  AuthenticationService.Instance.SignedOut += () => {
    Debug.Log("Player signed out.");
  };

  AuthenticationService.Instance.Expired += () =>
    {
        Debug.Log("Player session could not be refreshed and expired.");
    };
}