Itération 3 / Gameplay
RC — Temps calme
Retour au calme libre : musique d'ambiance, minuterie optionnelle, personnages en respiration assise.
Activité de retour au calme sans contenu guidé. Les personnages jouent une animation de respiration assise (ID 30) pendant que la musique choisie joue. L’enseignant peut activer un minuteur ; sans minuteur, l’activité tourne jusqu’au clic sur « Terminer ».
Deux scènes disponibles (RC_TempsCalme_01, RC_TempsCalme_02) — choisies aléatoirement au lancement.
Flux de l’activité
MenuParameters → UserSettings → SceneLoader → GameManager
↓
(clip audio, minuteur en secondes)
- L’enseignant règle musique et minuteur optionnel.
Commencer() sauvegarde dans UserSettings et charge une scène aléatoire via ScenesDatabase.GetRandomRCTempsCalmeScenePath().
GameManager.Start() lance la musique, joue l’animation ID 30 sur robot + avatar, s’abonne à ButtonHomeBehavior.OnButtonHomeClicked.
- L’enseignant clique « Commencer » →
startActivity() active le jeu. Si minuteur : affiche le compte à rebours, masque le bouton « Terminer ». Si infini : bouton « Terminer » reste visible.
- Fin :
EndActivity() retourne au menu (ScenesDatabase.ReturnToSession()) et envoie les statistiques.
| Champ | Type | Description |
|---|
aleatoireMusic | BoolSelector | Choisit une piste aléatoire dans SoundDatabase.rcPlaylist |
lecteurMusique | MusicSelector | Sélection manuelle si le mode aléatoire est désactivé |
choixMinuteur | BoolSelector | Active ou désactive le minuteur |
minuteur | TimeSelector | Durée si le minuteur est activé |
| Méthode | Description |
|---|
Commencer() | Résout musique et durée, appelle UserSettings.SaveSettings(), charge la scène |
SetActiveLecteurMusique(selector) | Masque lecteurMusique si mode aléatoire activé |
SetActiveMinuteur(selector) | Affiche minuteur uniquement si choixMinuteur coché |
UserSettings — mémoire
| Propriété | Type | Description |
|---|
clip | AudioClip | Piste musicale sélectionnée |
minuteur | float | Durée en secondes. 0 = pas de minuteur (mode infini) |
| Méthode | Description |
|---|
SaveSettings(clip, minuteur) | Écrase les valeurs pour le prochain chargement de scène |
GameManager — déroulement
Champs sérialisés
| Champ | Type | Description |
|---|
robotAnimationController | AnimationController | Joue l’animation ID 30 (respiration assise) |
avatarAnimationController | AnimationController | Idem pour l’avatar |
boutonTerminer | GameObject | Bouton visible uniquement en mode infini |
minuteurText | TextMeshProUGUI | Affichage du compte à rebours |
sonFinMinuteur | AudioClip | Son joué à l’expiration du minuteur |
fenetreFinMinuteur | GameObject | Panneau de fin affiché à l’expiration |
Méthodes importantes
| Méthode | Description |
|---|
Start() | Lance UserSettings.clip, joue l’animation ID 30, tague PlayerData.Activite = "RC-TC", lit UserSettings.minuteur |
startActivity() | Appelée par le bouton « Commencer » en scène. Active _enJeu = true. Si minuteur : affiche minuteurText, cache boutonTerminer |
GestionMinuteur() | Appelée dans Update(). Décrémente _minuteur. À zéro : joue sonFinMinuteur, affiche fenetreFinMinuteur |
EndActivity() | Appelée par le bouton « Terminer » ou l’event ButtonHomeBehavior.OnButtonHomeClicked. Retourne au menu via ScenesDatabase.ReturnToSession() et enregistre via APIGoogleSheet.EcrireDansClasseurStatistique() |
[!NOTE]
Contrairement au Cercle de Sérénité qui utilise un Slider circulaire, le Temps Calme n’a pas d’indicateur visuel de progression — uniquement le texte du minuteur (minuteurText) si activé.