Accueil Github ↗
Itération 3

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é.

VariableDescription
_effortDuration / _recuperationDurationDurées pour calculer la largeur proportionnelle de chaque segment
_segmentsListe de RectTransform des blocs générés dynamiquement
MéthodeDescription
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éthodeDescription
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éthodeDescription
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éthodeDescription
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.