Autentificering i Unity

Denne vejledning vil guide dig gennem opsætning af Unity-godkendelse i et Unity-projekt. Unity Autentificering giver dig mulighed for at administrere og godkende brugere i dine spil ved hjælp af Unitys Identity-værktøjssæt. Vi dækker de trin, der kræves for at konfigurere godkendelse, integrere det i dit projekt og implementere login-funktionalitet.

Forudsætninger

  • Unity Hub og Unity Editor installeret.
  • Unity projekt med Unity Services aktiveret.
  • Unity konto og et aktivt projekt-id.

Trin 1: Konfigurer Unity-godkendelse i Unity Dashboard

  1. Log ind på Unity Dashboard.
  2. Vælg dit projekt, eller opret et nyt.
  3. Naviger til Authentication under "Services"-sektionen.
  4. Aktiver godkendelse ved at klikke på knappen Aktiver.
  5. Konfigurer godkendelsesindstillingerne efter behov, såsom brugerattributter, login-metoder og adgangskontrol.

Trin 2: Installer Unity Authentication Package

For at bruge Unity-godkendelse i dit projekt, skal du installere den relevante pakke.

  1. Åbn dit Unity-projekt.
  2. Naviger til Window > Package Manager.
  3. Søg efter Authentication i Package Manager.
  4. Klik på Installer for at tilføje godkendelsespakken til dit projekt.

Trin 3: Konfigurer initialiseringsscript

For at bruge godkendelse i dit spil, skal du initialisere Unity-tjenester og godkendelse under kørsel. Tilføj følgende kode i et C#-script (f.eks. AuthenticationManager.cs), og vedhæft det til et GameObject i din scene.

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}");
        }
    }
}

Dette script initialiserer Unity-tjenester, når spillet starter, og logger brugeren ind anonymt, hvis de ikke allerede er logget ind.

Trin 4: Implementer log-in med Unity-godkendelse

Du kan også give muligheder for specifikke login-metoder, såsom e-mail eller Google-login, afhængigt af dit spils krav. Nedenfor er et eksempel på, hvordan du kan implementere login med Unity-godkendelse.

Eksempel: Log ind med e-mail og adgangskode

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}");
        }
    }
}

For at kalde denne metode skal du oprette en UI-formular i Unity, så brugerne kan indtaste deres e-mail og adgangskode, og derefter kalde SignInWithEmailAsync fra en UI-knaps onClick-hændelse.

Trin 5: Log ud

Til brugeradministration vil du måske også implementere en log-out-funktion. Sådan gør du:

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

Kald denne metode, når du vil logge brugeren ud af dit spil.

Konklusion

Vi dækkede, hvordan du konfigurerer Unity-godkendelse i dit Unity-projekt, inklusive initialisering, anonymt login, e-mail-logon og log-out-funktionalitet. Med Unity-godkendelse kan du administrere dine brugere mere effektivt og forbedre sikkerheden i dine spil. For mere avancerede opsætninger, såsom brugerdefinerede login-udbydere eller sammenkædning af flere godkendelsesmetoder, henvises til den officielle Unity-dokumentation.