Évaluation et roue de la chance
Bilan post-activité : smileys d'évaluation (1–3), aiguillage vers la Roue de la Chance si note de 3, animation de rotation et attribution des DB gagnés.
Le dossier UserInterface/Evaluation/ gère le pipeline de fin d’activité.
Pipeline
- Le joueur arrive sur l’évaluation avec 3 smileys (Mauvais = 1, Moyen = 2, Bon = 3).
- Si note ≤ 2 : l’interface enregistre le score et retourne au menu principal.
- Si note = 3 : l’évaluation se masque et la Roue de la Chance apparaît.
- Le joueur tourne la roue, reçoit des DB, puis quitte.
EvaluationMenu — passerelle
Gère la première étape. Capture le clic sur un smiley, enregistre la note et décide de la suite.
| Champ | Type | Description |
|---|---|---|
titre | TextMeshProUGUI | En-tête (passe de “Évaluation” à “Roue de la chance”) |
evaluationCanva | GameObject | Panneau des 3 smileys |
luckyWheelCanva | GameObject | Panneau de la roue (masqué par défaut) |
onSmileyClick(int value) : déclenche OnSmileyClick, cache l’évaluation et affiche la roue si value == 3, sinon charge le menu principal.
LuckyWheelMenu — interface de la roue
Bloque les interactions pendant la rotation et ajoute les DB gagnés au joueur à la fin.
| Champ | Type | Description |
|---|---|---|
luckyWheel | LuckyWheel | Composant mécanique de la roue |
_text | TextMeshProUGUI | Consigne, puis message de victoire (“Bravo ! Tu as gagné X DB !”) |
_spinButton | Button | Bouton de lancement |
_nextButton | GameObject | Bouton de sortie (n’apparaît qu’une fois la récompense distribuée) |
| Méthode | Description |
|---|---|
RotateNow() | Désactive le bouton, demande à LuckyWheel de tourner avec OnWheelRotationComplete comme callback |
OnWheelRotationComplete(int giftValue) | Ajoute les DB via DBManager.AddDynamoBloc(), met à jour le texte et affiche le bouton de sortie |
LuckyWheel — mécanique de la roue
Moteur physique et mathématique. Génère les récompenses sur les tranches et anime la rotation.
| Champ | Type | Description |
|---|---|---|
_numberOfGift | int | Nombre de tranches (défaut : 8) |
_timeRotate, _numberCircleRotate | float | Durée de l’animation et nombre de tours complets |
curve | AnimationCurve | Courbe d’accélération/décélération pour un effet réaliste |
_gifts | List<int> | Montants de DB possibles (ex. 10, 50, 100, 500) |
| Méthode | Description |
|---|---|
InitializeGift() | Au Start(), parcourt les tranches et assigne un montant aléatoire depuis _gifts |
RotateWheel(Action<int> onRotationComplete) | Coroutine : calcule l’angle d’arrivée (tours complets + angle précis de la case gagnante), fait tourner via AnimationCurve, puis renvoie la valeur gagnante au menu via le callback |