Interface en jeu
Composants UI transversaux utilisés pendant et après les activités : barre de progression segmentée, écran de bilan AP, compteur de DB et label auto-redimensionnable.
Le dossier UserInterface/InGameUI/ regroupe les composants UI réutilisables dans les scènes de jeu. Ils s’attachent à des GameObjects et sont appelés par les GameManagers.
SegmentedProgressBar — timeline de l’effort
Barre de progression découpée en blocs proportionnels au temps (ex. un bloc orange pour 20 s d’effort, un bloc violet pour 10 s de repos). Elle se remplit visuellement pendant l’activité.
| Variable | Description |
|---|---|
_effortDuration / _recuperationDuration | Durées pour calculer la largeur proportionnelle de chaque segment |
_segments | Liste de RectTransform des blocs générés dynamiquement |
| Méthode | Description |
|---|---|
CreateSegments(...) | Détruit les anciens segments, calcule la taille proportionnelle, instancie un prefab par cycle. |
UpdateProgressBar(...) | Appelée dans la boucle du GameManager. Remplit les segments de gauche à droite. Quand un segment se complète, émet OnSegmentFilled pour mettre le jeu en pause en attendant la réponse. |
BilanAP — écran de fin
Grand panneau récapitulatif après une activité physique. Calcule le temps total d’AP du jour, demande une auto-évaluation via smileys, et envoie les statistiques au backend.
| Méthode | Description |
|---|---|
StartBilanAP() | Récupère le temps d’AP de la session, l’additionne au total du jour (PlayerData), met à jour l’interface. |
OnSmileyClicked(int value) | Connecté aux boutons d’évaluation. Lance WaitGoogleSheet_Coroutine. |
WaitGoogleSheet_Coroutine() | Convertit la note en texte, envoie deux requêtes web asynchrones (ClasseurStatistique + ClasseurRecherche via l’API). Une fois terminé, permet de retourner au menu. |
DBDisplay — compteur de Dynamo-Blocs
Anime le compteur de DB en faisant défiler les chiffres avec son et effet visuel, plutôt qu’un changement brusque.
| Méthode | Description |
|---|---|
UpdateDB(int amount, bool isAudioSfx) | Connectée à DBManager.OnDynamoBlockAdded. Lance l’animation. |
LerpDBValue(...) | Coroutine : fait apparaître une étoile, puis incrémente le texte de +1 toutes les 0,05 s jusqu’à atteindre le montant total, avec le son sfx_collectDB_01 à chaque incrément. |
AutoResizableLabel — texte adaptatif
Utilitaire qui réduit la taille de police si un texte dépasse sa boîte UI. Utile pour les noms de mouvements ou d’élèves potentiellement longs.
| Méthode | Description |
|---|---|
SetText(string text) | Assigne le texte et lance immédiatement la vérification. |
AdjustTextSize() | Boucle qui réduit fontSize si le texte dépasse maxTextMeshProWidth, ou l’agrandit s’il y a de la place (sans dépasser defaultFontSize). Force Unity à recalculer la taille de l’arrière-plan. |
DisplayAnimationName — souffleur (désactivé)
[!NOTE] Ce fichier est entièrement commenté. Lorsqu’il était actif, il écoutait le contrôleur d’animation, affichait le nom de chaque mouvement à l’écran et lançait la voix off associée, en filtrant les animations d’attente (Idle) pour éviter le spam de texte.