Autenticazione in Unity

Questo tutorial ti guiderà attraverso la configurazione dell'autenticazione Unity in un progetto Unity. L'autenticazione Unity ti consente di gestire e autenticare gli utenti nei tuoi giochi utilizzando il toolkit Identity di Unity. Tratteremo i passaggi necessari per configurare l'autenticazione, integrarla nel tuo progetto e implementare la funzionalità di accesso.

Prerequisiti

  • Unity Hub e editor Unity installati.
  • Unity progetto con servizi Unity abilitati.
  • Unity account e un ID progetto attivo.

Passaggio 1: imposta l'autenticazione Unity nella dashboard Unity

  1. Accedi alla Unity Dashboard.
  2. Seleziona il tuo progetto o creane uno nuovo.
  3. Passare a Autenticazione nella sezione "Services".
  4. Abilitare l'autenticazione cliccando sul pulsante Attiva.
  5. Configurare le impostazioni di autenticazione in base alle proprie esigenze, ad esempio attributi utente, metodi di accesso e controlli di accesso.

Passaggio 2: installare il pacchetto di autenticazione Unity

Per utilizzare l'autenticazione Unity nel tuo progetto, devi installare il pacchetto appropriato.

  1. Apri il tuo progetto Unity.
  2. Vai a Finestra > Gestione pacchetti.
  3. Cerca Authentication nel Package Manager.
  4. Fare clic su Installa per aggiungere il pacchetto di autenticazione al progetto.

Passaggio 3: impostare lo script di inizializzazione

Per usare l'autenticazione nel tuo gioco, devi inizializzare i servizi Unity e l'autenticazione in fase di esecuzione. Aggiungi il seguente codice in uno script C# (ad esempio, AuthenticationManager.cs) e collegalo a un GameObject nella tua scena.

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

Questo script inizializza i servizi Unity all'avvio del gioco e consente all'utente di effettuare l'accesso in forma anonima se non ha già effettuato l'accesso.

Passaggio 4: implementare l'accesso con l'autenticazione Unity

Puoi anche fornire opzioni per metodi di accesso specifici, come e-mail o accesso Google, a seconda dei requisiti del tuo gioco. Di seguito è riportato un esempio di come potresti implementare l'accesso con l'autenticazione Unity.

Esempio: Accedi con e-mail e password

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

Per chiamare questo metodo, crea un modulo UI in Unity in cui gli utenti possano inserire il loro indirizzo email e la loro password, quindi chiama SignInWithEmailAsync dall'evento onClick di un pulsante UI.

Passaggio 5: Disconnettersi

Per la gestione degli utenti, potresti voler implementare anche una funzione di disconnessione. Ecco come:

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

Chiama questo metodo ogni volta che vuoi disconnettere l'utente dal tuo gioco.

Conclusione

Abbiamo spiegato come impostare l'autenticazione Unity nel tuo progetto Unity, inclusa l'inizializzazione, l'accesso anonimo, l'accesso tramite e-mail e la funzionalità di disconnessione. Con l'autenticazione Unity, puoi gestire i tuoi utenti in modo più efficace e migliorare la sicurezza nei tuoi giochi. Per impostazioni più avanzate, come provider di accesso personalizzati o collegamento di più metodi di autenticazione, fai riferimento alla documentazione ufficiale di Unity.