Authentification
Connexion PlayFab : LogIn.cs, flux de login, gestion des erreurs réseau, SafeQuit et RememberMe.
LogIn.cs
MonoBehaviour attaché à la scène de connexion. Lit les champs de saisie, envoie la requête PlayFab et orchestre le chargement des données après succès.
Flux de connexion
// 1. L'utilisateur clique sur "Se connecter"
Login()
├─ Lit usernameTMP.text + passwordTMP.text
└─ PlayFabClientAPI.LoginWithPlayFab(request, OnSuccess, OnError)
// 2. Succès
OnSuccess(LoginResult result)
├─ PlayerData.PlayerUserName = username
├─ onLoginSuccess?.Invoke() // déclenche RememberMe si activé
└─ PlayerDataManager.LoadPlayerGeneralData(callback)
└─ PlayerData.PlayerPlayfabID = result.PlayFabId
GestionnaireBadge.ChargerBadges()
→ selon ProfilType : LoadStudentData() ou LoadTeacherData()
→ UpdatePlayerData()
→ SceneLoaderWithChargement.LoadScene(MainMenu)
Champs sérialisés
| Champ | Type | Description |
|---|---|---|
usernameTMP | TMP_InputField | Champ identifiant |
passwordTMP | TMP_InputField | Champ mot de passe |
erreurDeConnexionFrame | GameObject | Panneau d’erreur |
erreurDeConnexionMessage | TextMeshProUGUI | Texte du message d’erreur |
Gestion des erreurs
| Erreur PlayFab | Message utilisateur |
|---|---|
ServiceUnavailable | ”Tu ne semble pas connecté à internet.” |
AccountNotFound | ”Identifiant introuvable.” |
InvalidUsernameOrPassword | ”Mot de passe incorrect.” |
APIClientRequestRateLimitExceeded | ”Tu as fait trop de tentatives… Attends un peu.” |
[!NOTE] Un bloc de code “offline mode” pour le développement existe mais est entièrement commenté (identifiants
user/Vo2Licorne). Ne pas décommenter en production.
RememberMe
RememberMe.cs s’abonne à onLoginSuccess de LogIn. Quand déclenché, sauvegarde les identifiants dans les PlayerPrefs pour pré-remplir les champs à la prochaine ouverture de l’app.
LogOut
LogOut.cs appelle PlayerData.ClearPlayerData() pour remettre toutes les variables à zéro, puis charge la scène de connexion. Critique pour les tablettes partagées entre plusieurs élèves.
SafeQuit
SafeQuit.cs intercepte la fermeture de l’application (bouton Home du système, etc.) et s’assure que les données en attente d’envoi (AP, statistiques) sont bien sauvegardées avant que le processus ne se termine.
InactiviteCheck
Détecte l’inactivité de l’utilisateur. Après un délai sans interaction, déclenche une déconnexion automatique pour sécuriser les comptes sur tablettes partagées.