Authentification dans Unity

Ce didacticiel vous guidera dans la configuration de l'authentification Unity dans un projet Unity. L'authentification Unity vous permet de gérer et d'authentifier les utilisateurs de vos jeux à l'aide de la boîte à outils Identity d'Unity. Nous aborderons les étapes nécessaires à la configuration de l'authentification, à son intégration dans votre projet et à la mise en œuvre de la fonctionnalité de connexion.

Prérequis

  • Unity Hub et éditeur Unity installés.
  • Unity projet avec les services Unity activés.
  • Unity compte et un ID de projet actif.

Étape 1: Configurer l'authentification Unity dans le tableau de bord Unity

  1. Connectez-vous au Unity tableau de bord.
  2. Sélectionnez votre projet ou créez-en un nouveau.
  3. Accédez à Authentification sous la section "Services".
  4. Activez l'authentification en cliquant sur le bouton Activer.
  5. Configurez les paramètres d’authentification selon vos besoins, tels que les attributs utilisateur, les méthodes de connexion et les contrôles d’accès.

Étape 2: Installer le package d'authentification Unity

Afin d'utiliser l'authentification Unity dans votre projet, vous devez installer le package approprié.

  1. Ouvrez votre projet Unity.
  2. Accédez à Fenêtre > Gestionnaire de packages.
  3. Recherchez Authentication dans le gestionnaire de paquets.
  4. Cliquez sur Installer pour ajouter le package d'authentification à votre projet.

Étape 3: Configurer le script d’initialisation

Pour utiliser l'authentification dans votre jeu, vous devez initialiser les services Unity et l'authentification au moment de l'exécution. Ajoutez le code suivant dans un script C# (par exemple, AuthenticationManager.cs) et attachez-le à un GameObject dans votre scène.

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

Ce script initialise les services Unity au démarrage du jeu et connecte l'utilisateur de manière anonyme s'il n'est pas déjà connecté.

Étape 4: implémenter la connexion avec l'authentification Unity

Vous pouvez également fournir des options pour des méthodes de connexion spécifiques, telles que la connexion par e-mail ou Google, en fonction des exigences de votre jeu. Vous trouverez ci-dessous un exemple de la manière dont vous pouvez implémenter la connexion avec l'authentification Unity.

Exemple: se connecter avec une adresse e-mail et un mot de passe

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

Pour appeler cette méthode, créez un formulaire d'interface utilisateur dans Unity pour que les utilisateurs saisissent leur e-mail et leur mot de passe, puis appelez SignInWithEmailAsync à partir de l'événement onClick d'un bouton d'interface utilisateur.

Étape 5: Déconnexion

Pour la gestion des utilisateurs, vous souhaiterez peut-être également implémenter une fonction de déconnexion. Voici comment procéder:

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

Appelez cette méthode chaque fois que vous souhaitez déconnecter l'utilisateur de votre jeu.

Conclusion

Nous avons expliqué comment configurer l'authentification Unity dans votre projet Unity, notamment l'initialisation, la connexion anonyme, la connexion par e-mail et la fonctionnalité de déconnexion. Avec l'authentification Unity, vous pouvez gérer vos utilisateurs plus efficacement et améliorer la sécurité de vos jeux. Pour des configurations plus avancées, telles que des fournisseurs de connexion personnalisés ou la liaison de plusieurs méthodes d'authentification, reportez-vous à la documentation officielle Unity.