Authentifizierung in Unity

Dieses Tutorial führt Sie durch die Einrichtung der Unity-Authentifizierung in einem Unity-Projekt. Mit der Unity-Authentifizierung können Sie Benutzer in Ihren Spielen mithilfe des Identity-Toolkits von Unity verwalten und authentifizieren. Wir behandeln die erforderlichen Schritte zum Einrichten der Authentifizierung, zur Integration in Ihr Projekt und zur Implementierung der Anmeldefunktion.

Voraussetzungen

  • Unity Hub und Unity-Editor installiert.
  • Unity Projekt mit aktivierten Unity-Diensten.
  • Unity Konto und eine aktive Projekt-ID.

Schritt 1: Unity-Authentifizierung im Unity-Dashboard einrichten

  1. Melden Sie sich beim Unity Dashboard an.
  2. Wählen Sie Ihr Projekt aus oder erstellen Sie ein neues.
  3. Navigieren Sie zu Authentifizierung im Abschnitt "Services".
  4. Aktivieren Sie die Authentifizierung, indem Sie auf die Schaltfläche Aktivieren klicken.
  5. Konfigurieren Sie die Authentifizierungseinstellungen nach Bedarf, beispielsweise Benutzerattribute, Anmeldemethoden und Zugriffskontrollen.

Schritt 2: Installieren Sie das Unity-Authentifizierungspaket

Um die Unity-Authentifizierung in Ihrem Projekt zu verwenden, müssen Sie das entsprechende Paket installieren.

  1. Öffnen Sie Ihr Unity-Projekt.
  2. Navigieren Sie zu Fenster > Paket-Manager.
  3. Suchen Sie im Paket-Manager nach Authentication.
  4. Klicken Sie auf Installieren, um das Authentifizierungspaket zu Ihrem Projekt hinzuzufügen.

Schritt 3: Initialisierungsskript einrichten

Um die Authentifizierung in Ihrem Spiel zu verwenden, müssen Sie Unity-Dienste und die Authentifizierung zur Laufzeit initialisieren. Fügen Sie den folgenden Code in ein C#-Skript ein (z. B. AuthenticationManager.cs) und hängen Sie ihn an ein GameObject in Ihrer Szene an.

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

Dieses Skript initialisiert Unity-Dienste beim Start des Spiels und meldet den Benutzer anonym an, wenn er nicht bereits angemeldet ist.

Schritt 4: Implementierung der Anmeldung mit Unity-Authentifizierung

Sie können auch Optionen für bestimmte Anmeldemethoden bereitstellen, z. B. E-Mail- oder Google-Anmeldung, je nach den Anforderungen Ihres Spiels. Unten finden Sie ein Beispiel, wie Sie die Anmeldung mit Unity-Authentifizierung implementieren könnten.

Beispiel: Anmeldung mit E-Mail und Passwort

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

Um diese Methode aufzurufen, erstellen Sie ein UI-Formular in Unity, in das Benutzer ihre E-Mail-Adresse und ihr Passwort eingeben können, und rufen Sie dann SignInWithEmailAsync vom onClick-Ereignis einer UI-Schaltfläche aus auf.

Schritt 5: Abmelden

Für die Benutzerverwaltung möchten Sie möglicherweise auch eine Abmeldefunktion implementieren. So geht's:

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

Rufen Sie diese Methode auf, wenn Sie den Benutzer aus Ihrem Spiel abmelden möchten.

Abschluss

Wir haben erläutert, wie Sie die Unity-Authentifizierung in Ihrem Unity-Projekt einrichten, einschließlich Initialisierung, anonymer Anmeldung, E-Mail-Anmeldung und Abmeldefunktion. Mit der Unity-Authentifizierung können Sie Ihre Benutzer effektiver verwalten und die Sicherheit Ihrer Spiele verbessern. Weitere Informationen zu erweiterten Setups, z. B. benutzerdefinierten Anmeldeanbietern oder der Verknüpfung mehrerer Authentifizierungsmethoden, finden Sie in der offiziellen Unity-Dokumentation.