Аутентификация в Unity

Это руководство проведет вас через настройку Unity аутентификации в проекте Unity. Unity аутентификация позволяет вам управлять и аутентифицировать пользователей в ваших играх с помощью инструментария Unity Identity. Мы рассмотрим шаги, необходимые для настройки аутентификации, интегрируем ее в ваш проект и реализуем функциональность входа.

Предпосылки

  • Unity Установлены Hub и Unity Editor.
  • Unity проект с включенными Unity службами.
  • Unity учетная запись и идентификатор активного проекта.

Шаг 1: Настройте аутентификацию Unity на панели инструментов Unity

  1. Войдите в Unity Панель управления.
  2. Выберите свой проект или создайте новый.
  3. Перейдите к Аутентификация в разделе "Services".
  4. Включите аутентификацию, нажав кнопку Активировать.
  5. При необходимости настройте параметры аутентификации, такие как атрибуты пользователя, методы входа и элементы управления доступом.

Шаг 2: Установка пакета аутентификации Unity

Чтобы использовать аутентификацию Unity в своем проекте, вам необходимо установить соответствующий пакет.

  1. Откройте ваш проект Unity.
  2. Перейдите в Окно > Диспетчер пакетов.
  3. Найдите Authentication в диспетчере пакетов.
  4. Нажмите Установить, чтобы добавить пакет аутентификации в ваш проект.

Шаг 3: Настройка сценария инициализации

Чтобы использовать аутентификацию в вашей игре, вам необходимо инициализировать Unity сервисы и аутентификацию во время выполнения. Добавьте следующий код в скрипт C# (например, AuthenticationManager.cs) и прикрепите его к GameObject в вашей сцене.

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

Этот скрипт инициализирует службы Unity при запуске игры и анонимно регистрирует пользователя, если он еще не вошел в систему.

Шаг 4: Реализуйте вход с аутентификацией Unity

Вы также можете предоставить варианты для определенных методов входа, таких как электронная почта или вход через Google, в зависимости от требований вашей игры. Ниже приведен пример того, как вы можете реализовать вход с помощью аутентификации Unity.

Пример: вход с помощью электронной почты и пароля

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

Чтобы вызвать этот метод, создайте форму пользовательского интерфейса в Unity, чтобы пользователи могли ввести свой адрес электронной почты и пароль, а затем вызовите SignInWithEmailAsync из события onClick кнопки пользовательского интерфейса.

Шаг 5: Выйти

Для управления пользователями вы также можете реализовать функцию выхода. Вот как это сделать:

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

Вызывайте этот метод всякий раз, когда хотите вывести пользователя из игры.

Заключение

Мы рассмотрели, как настроить аутентификацию Unity в вашем проекте Unity, включая инициализацию, анонимный вход, вход по электронной почте и выход из системы. С аутентификацией Unity вы можете эффективнее управлять своими пользователями и повышать безопасность в своих играх. Для более сложных настроек, таких как пользовательские поставщики входа или связывание нескольких методов аутентификации, обратитесь к официальной документации Unity.