Uwierzytelnianie w Unity

Ten samouczek przeprowadzi Cię przez konfigurację uwierzytelniania Unity w projekcie Unity. Uwierzytelnianie Unity umożliwia zarządzanie i uwierzytelnianie użytkowników w grach za pomocą zestawu narzędzi Identity Unity. Omówimy kroki wymagane do skonfigurowania uwierzytelniania, zintegrowania go z projektem i wdrożenia funkcji logowania.

Wymagania wstępne

  • Unity Zainstalowano Hub i edytor Unity.
  • Unity projekt z włączonymi usługami Unity.
  • Unity konto i aktywny identyfikator projektu.

Krok 1: Skonfiguruj uwierzytelnianie Unity w panelu Unity

  1. Zaloguj się do Panelu Unity.
  2. Wybierz swój projekt lub utwórz nowy.
  3. Przejdź do Uwierzytelnianie w sekcji "Services".
  4. Włącz uwierzytelnianie klikając przycisk Aktywuj.
  5. Skonfiguruj ustawienia uwierzytelniania zgodnie z potrzebami, takie jak atrybuty użytkownika, metody logowania i kontrole dostępu.

Krok 2: Zainstaluj pakiet uwierzytelniania Unity

Aby móc używać uwierzytelniania Unity w swoim projekcie, musisz zainstalować odpowiedni pakiet.

  1. Otwórz swój projekt Unity.
  2. Przejdź do okna > Menedżer pakietów.
  3. Wyszukaj Authentication w Menedżerze pakietów.
  4. Kliknij Install, aby dodać pakiet uwierzytelniania do swojego projektu.

Krok 3: Skonfiguruj skrypt inicjalizacji

Aby użyć uwierzytelniania w grze, musisz zainicjować usługi Unity i uwierzytelnianie w czasie wykonywania. Dodaj następujący kod w skrypcie C# (np. AuthenticationManager.cs) i dołącz go do GameObject w swojej scenie.

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

Ten skrypt inicjuje usługi Unity podczas uruchamiania gry i loguje użytkownika anonimowo, jeśli jeszcze nie jest zalogowany.

Krok 4: Wdróż logowanie z uwierzytelnianiem Unity

Możesz również podać opcje dla konkretnych metod logowania, takich jak e-mail lub logowanie przez Google, w zależności od wymagań gry. Poniżej znajduje się przykład, jak można wdrożyć logowanie za pomocą uwierzytelniania Unity.

Przykład: Zaloguj się za pomocą adresu e-mail i hasła

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

Aby wywołać tę metodę, utwórz formularz interfejsu użytkownika w Unity, w którym użytkownicy będą mogli wprowadzić swój adres e-mail i hasło, a następnie wywołaj SignInWithEmailAsync z zdarzenia onClick przycisku interfejsu użytkownika.

Krok 5: Wyloguj się

Do zarządzania użytkownikami możesz również zaimplementować funkcję wylogowania. Oto jak to zrobić:

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

Wywołaj tę metodę za każdym razem, gdy chcesz wylogować użytkownika z gry.

Wniosek

Omówiliśmy, jak skonfigurować uwierzytelnianie Unity w projekcie Unity, w tym inicjalizację, anonimowe logowanie, logowanie za pomocą poczty e-mail i funkcjonalność wylogowywania. Dzięki uwierzytelnianiu Unity możesz skuteczniej zarządzać swoimi użytkownikami i zwiększyć bezpieczeństwo w swoich grach. Aby uzyskać bardziej zaawansowane konfiguracje, takie jak niestandardowi dostawcy logowania lub łączenie wielu metod uwierzytelniania, zapoznaj się z oficjalną dokumentacją Unity.