Autentisering i Unity

Denna handledning guidar dig genom att ställa in Unity-autentisering i ett Unity-projekt. Unity Autentisering gör att du kan hantera och autentisera användare i dina spel med hjälp av Unitys Identity-verktygssats. Vi tar upp de steg som krävs för att ställa in autentisering, integrera den i ditt projekt och implementera inloggningsfunktioner.

Förutsättningar

  • Unity Hub och Unity Editor installerade.
  • Unity projekt med Unity Services aktiverade.
  • Unity konto och ett aktivt projekt-ID.

Steg 1: Ställ in Unity-autentisering i Unity Dashboard

  1. Logga in på Unity Dashboard.
  2. Välj ditt projekt eller skapa ett nytt.
  3. Navigera till Autentisering under avsnittet "Services".
  4. Aktivera autentisering genom att klicka på knappen Aktivera.
  5. Konfigurera autentiseringsinställningarna efter behov, såsom användarattribut, inloggningsmetoder och åtkomstkontroller.

Steg 2: Installera Unity Authentication Package

För att använda Unity-autentisering i ditt projekt måste du installera rätt paket.

  1. Öppna ditt Unity-projekt.
  2. Navigera till Window > Package Manager.
  3. Sök efter Authentication i pakethanteraren.
  4. Klicka på Installera för att lägga till autentiseringspaketet till ditt projekt.

Steg 3: Konfigurera initialiseringsskript

För att använda autentisering i ditt spel måste du initiera Unity tjänster och autentisering vid körning. Lägg till följande kod i ett C#-skript (t.ex. AuthenticationManager.cs), och bifoga den till ett GameObject i din scen.

using UnityEngine;
using Unity.Services.Core;
using Unity.Services.Authentication;
using System.Threading.Tasks;

public class AuthenticationManager : MonoBehaviour
{
    async void Start()
    {
        await InitializeUnityServicesAsync();
    }

    private async Task InitializeUnityServicesAsync()
    {
        try
        {
            await UnityServices.InitializeAsync();
            Debug.Log("Unity Services initialized successfully.");

            if (!AuthenticationService.Instance.IsSignedIn)
            {
                await SignInAnonymously();
            }
        }
        catch (System.Exception e)
        {
            Debug.LogError($"Error initializing Unity Services: {e.Message}");
        }
    }

    private async Task SignInAnonymously()
    {
        try
        {
            await AuthenticationService.Instance.SignInAnonymouslyAsync();
            Debug.Log("Signed in anonymously.");
        }
        catch (System.Exception e)
        {
            Debug.LogError($"Error signing in anonymously: {e.Message}");
        }
    }
}

Det här skriptet initierar Unity-tjänster när spelet startar och loggar in användaren anonymt om de inte redan är inloggade.

Steg 4: Implementera inloggning med Unity-autentisering

Du kan också tillhandahålla alternativ för specifika inloggningsmetoder, som e-post eller Google-inloggning, beroende på ditt spels krav. Nedan är ett exempel på hur du kan implementera inloggning med Unity-autentisering.

Exempel: Logga in med e-post och lösenord

using UnityEngine;
using Unity.Services.Authentication;
using System.Threading.Tasks;

public class AuthenticationManager : MonoBehaviour
{
    async void Start()
    {
        await InitializeUnityServicesAsync();
    }

    private async Task InitializeUnityServicesAsync()
    {
        try
        {
            await UnityServices.InitializeAsync();
            Debug.Log("Unity Services initialized successfully.");
        }
        catch (System.Exception e)
        {
            Debug.LogError($"Error initializing Unity Services: {e.Message}");
        }
    }

    public async Task SignInWithEmailAsync(string email, string password)
    {
        try
        {
            await AuthenticationService.Instance.SignInWithEmailAndPasswordAsync(email, password);
            Debug.Log("Signed in with email successfully.");
        }
        catch (System.Exception e)
        {
            Debug.LogError($"Error signing in with email: {e.Message}");
        }
    }
}

För att anropa den här metoden, skapa ett UI-formulär i Unity så att användarna kan ange sin e-postadress och lösenord, och sedan anropa SignInWithEmailAsync från en UI-knapps onClick-händelse.

Steg 5: Logga ut

För användarhantering kanske du också vill implementera en utloggningsfunktion. Så här gör du:

public void SignOut()
{
    AuthenticationService.Instance.SignOut();
    Debug.Log("Signed out successfully.");
}

Anropa den här metoden när du vill logga ut användaren från ditt spel.

Slutsats

Vi tog upp hur du ställer in Unity-autentisering i ditt Unity-projekt, inklusive initialisering, anonym inloggning, e-postinloggning och utloggningsfunktioner. Med Unity-autentisering kan du hantera dina användare mer effektivt och förbättra säkerheten i dina spel. För mer avancerade inställningar, såsom anpassade inloggningsleverantörer eller länkning av flera autentiseringsmetoder, se den officiella Unity-dokumentationen.