Accueil Github ↗
Itération 3

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)
  1. L’enseignant règle musique et minuteur optionnel.
  2. Commencer() sauvegarde dans UserSettings et charge une scène aléatoire via ScenesDatabase.GetRandomRCTempsCalmeScenePath().
  3. GameManager.Start() lance la musique, joue l’animation ID 30 sur robot + avatar, s’abonne à ButtonHomeBehavior.OnButtonHomeClicked.
  4. L’enseignant clique « Commencer » → startActivity() active le jeu. Si minuteur : affiche le compte à rebours, masque le bouton « Terminer ». Si infini : bouton « Terminer » reste visible.
  5. Fin : EndActivity() retourne au menu (ScenesDatabase.ReturnToSession()) et envoie les statistiques.
ChampTypeDescription
aleatoireMusicBoolSelectorChoisit une piste aléatoire dans SoundDatabase.rcPlaylist
lecteurMusiqueMusicSelectorSélection manuelle si le mode aléatoire est désactivé
choixMinuteurBoolSelectorActive ou désactive le minuteur
minuteurTimeSelectorDurée si le minuteur est activé
MéthodeDescription
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éTypeDescription
clipAudioClipPiste musicale sélectionnée
minuteurfloatDurée en secondes. 0 = pas de minuteur (mode infini)
MéthodeDescription
SaveSettings(clip, minuteur)Écrase les valeurs pour le prochain chargement de scène

GameManager — déroulement

Champs sérialisés

ChampTypeDescription
robotAnimationControllerAnimationControllerJoue l’animation ID 30 (respiration assise)
avatarAnimationControllerAnimationControllerIdem pour l’avatar
boutonTerminerGameObjectBouton visible uniquement en mode infini
minuteurTextTextMeshProUGUIAffichage du compte à rebours
sonFinMinuteurAudioClipSon joué à l’expiration du minuteur
fenetreFinMinuteurGameObjectPanneau de fin affiché à l’expiration

Méthodes importantes

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