Autenticação no Unity

Este tutorial guiará você pela configuração da Autenticação Unity em um projeto Unity. A Autenticação Unity permite que você gerencie e autentique usuários em seus jogos usando o kit de ferramentas Identity da Unity. Abordaremos as etapas necessárias para configurar a autenticação, integrá-la ao seu projeto e implementar a funcionalidade de login.

Pré-requisitos

  • Unity Hub e editor Unity instalados.
  • Unity projeto com serviços Unity habilitados.
  • Unity conta e um ID de projeto ativo.

Etapa 1: Configurar autenticação Unity no painel Unity

  1. Faça login no Unity Painel.
  2. Selecione seu projeto ou crie um novo.
  3. Navegue até Autenticação na seção "Services".
  4. Habilite a autenticação clicando no botão Ativar.
  5. Configure as configurações de autenticação conforme necessário, como atributos de usuário, métodos de login e controles de acesso.

Etapa 2: instalar o pacote de autenticação Unity

Para usar a autenticação Unity no seu projeto, você precisa instalar o pacote apropriado.

  1. Abra seu projeto Unity.
  2. Navegue até Janela > Gerenciador de Pacotes.
  3. Procure por Authentication no Gerenciador de Pacotes.
  4. Clique em Instalar para adicionar o pacote de autenticação ao seu projeto.

Etapa 3: Configurar script de inicialização

Para usar autenticação no seu jogo, você precisa inicializar os serviços Unity e autenticação no tempo de execução. Adicione o seguinte código em um script C# (por exemplo, AuthenticationManager.cs) e anexe-o a um GameObject na sua cena.

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

Este script inicializa os serviços Unity quando o jogo inicia e conecta o usuário anonimamente, caso ele ainda não esteja conectado.

Etapa 4: Implementar login com autenticação Unity

Você também pode fornecer opções para métodos de login específicos, como e-mail ou login do Google, dependendo dos requisitos do seu jogo. Abaixo está um exemplo de como você pode implementar o login com a Autenticação Unity.

Exemplo: Login com e-mail e senha

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

Para chamar esse método, crie um formulário de interface do usuário em Unity para os usuários inserirem seu e-mail e senha e, em seguida, chame SignInWithEmailAsync a partir do evento onClick de um botão de interface do usuário.

Etapa 5: Sair

Para gerenciamento de usuários, você pode querer implementar uma função de sign-out também. Veja como:

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

Chame esse método sempre que quiser desconectar o usuário do seu jogo.

Conclusão

Abordamos como configurar a Autenticação Unity no seu projeto Unity, incluindo inicialização, login anônimo, login por e-mail e funcionalidade de logout. Com a Autenticação Unity, você pode gerenciar seus usuários de forma mais eficaz e aumentar a segurança em seus jogos. Para configurações mais avançadas, como provedores de login personalizados ou vinculação de vários métodos de autenticação, consulte a documentação oficial Unity.