Autentisering i Unity

Denne opplæringen vil veilede deg gjennom å sette opp Unity-autentisering i et Unity-prosjekt. Unity Autentisering lar deg administrere og autentisere brukere i spillene dine ved å bruke Unitys Identity-verktøysett. Vi vil dekke trinnene som kreves for å konfigurere autentisering, integrere den i prosjektet ditt og implementere påloggingsfunksjonalitet.

Forutsetninger

  • Unity Hub og Unity Editor installert.
  • Unity prosjekt med Unity Tjenester aktivert.
  • Unity konto og en aktiv prosjekt-ID.

Trinn 1: Sett opp Unity Autentisering i Unity Dashboard

  1. Logg inn på Unity Dashboard.
  2. Velg ditt prosjekt eller lag et nytt.
  3. Naviger til Autentisering under "Services"-delen.
  4. Aktiver autentisering ved å klikke på Aktiver-knappen.
  5. Konfigurer autentiseringsinnstillingene etter behov, for eksempel brukerattributter, påloggingsmetoder og tilgangskontroller.

Trinn 2: Installer Unity autentiseringspakke

For å bruke Unity-autentisering i prosjektet ditt, må du installere riktig pakke.

  1. Åpne Unity-prosjektet ditt.
  2. Naviger til Window > Package Manager.
  3. Søk etter Autentisering i Pakkebehandlingen.
  4. Klikk på Install for å legge til autentiseringspakken til prosjektet ditt.

Trinn 3: Sett opp initialiseringsskript

For å bruke autentisering i spillet ditt, må du initialisere Unity tjenester og autentisering under kjøring. Legg til følgende kode i et C#-skript (f.eks. AuthenticationManager.cs), og fest den til et GameObject i scenen din.

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 skriptet initialiserer Unity-tjenester når spillet starter og logger brukeren på anonymt hvis de ikke allerede er pålogget.

Trinn 4: Implementer pålogging med Unity-autentisering

Du kan også tilby alternativer for spesifikke påloggingsmetoder, for eksempel e-post eller Google-pålogging, avhengig av spillets krav. Nedenfor er et eksempel på hvordan du kan implementere pålogging med Unity-autentisering.

Eksempel: Logg på med e-post og passord

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 å kalle denne metoden oppretter du et brukergrensesnittskjema i Unity slik at brukerne kan skrive inn e-post og passord, og deretter kaller SignInWithEmailAsync fra en UI-knapps onClick-hendelse.

Trinn 5: Logg av

For brukeradministrasjon kan det være lurt å implementere en utloggingsfunksjon også. Slik gjør du det:

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

Kall denne metoden når du vil logge brukeren ut av spillet ditt.

Konklusjon

Vi dekket hvordan du konfigurerer Unity-autentisering i Unity-prosjektet ditt, inkludert initialisering, anonym pålogging, e-postpålogging og utloggingsfunksjonalitet. Med Unity-autentisering kan du administrere brukerne dine mer effektivt og forbedre sikkerheten i spillene dine. For mer avanserte oppsett, for eksempel tilpassede påloggingsleverandører eller kobling av flere autentiseringsmetoder, se den offisielle Unity-dokumentasjonen.