Accueil Github ↗
Itération 3

RC — Méditation guidée

Retour au calme : séance de méditation avec voix off, barre de progression synchronisée sur la durée audio et ScriptableObjects pour les pistes.

La méditation guidée lance une scène 3D relaxante avec une voix off. L’enseignant choisit une méditation dans le menu, les données sont lues depuis un ScriptableObject et transférées en mémoire temporaire (UserSettings), puis la scène charge et lit ces informations pour démarrer la séance.

Data.cs — ScriptableObject de méditation

Chaque piste de méditation est un ScriptableObject créé dans l’éditeur via Create > Cogni-Actif > Gameplay > Retour au calme > Meditation guidée.

VariableTypeDescription
meditationNamestringTitre (ex. “Le scan corporel”, “La respiration de l’ours”)
audioClipAudioClipFichier audio de la voix off
isSittingboolPosition des avatars : assis (true) ou debout (false)

Lit la liste des ScriptableObjects disponibles, les associe aux boutons de l’interface et prépare le lancement.

ChampTypeDescription
meditationDataList<Data>Toutes les pistes de méditation disponibles
selectedMeditationNameTextMeshProUGUITitre de la méditation sélectionnée
buttonListList<Button>Boutons cliquables à l’écran
MéthodeDescription
Start()Lie chaque bouton à son index dans meditationData et sélectionne le premier par défaut
OnMeditationSelected(int index)Met à jour le titre et prépare les données (isSitting, audioClip, meditationName)
Commencer()Sauvegarde dans UserSettings, choisit une scène RC aléatoire via ScenesDatabase.GetRandomRCMeditationGuideeScenePath() et lance le chargement

UserSettings — mémoire

PropriétéTypeDescription
IsSittingboolPosition de l’avatar
MeditationClipAudioClipPiste audio de la voix off
MeditationNamestringTitre affiché en haut de l’écran de jeu

GameManager — déroulement de la séance

Lance la musique d’ambiance, déclenche la voix off et synchronise la barre de progression sur la durée du fichier audio.

Champs sérialisés

ChampTypeDescription
robotAnimationController / avatarAnimationControllerAnimationControllerAnimation des personnages (assis ou debout selon IsSitting)
audioClipAudioClipPiste de secours si UserSettings est vide
startFrameTitleTextMeshProUGUIAffiche le nom de la méditation
endFrameGameObjectPanneau “Fin de l’activité”
progressBarSegmentedProgressBarBarre de progression

Méthodes importantes

MéthodeDescription
Start()Lance music_Calm_01, récupère la voix off depuis UserSettings, met à jour le titre et prépare le tag statistique “RC-MG”
StartActivity()Joue la voix off. Récupère audioClip.length pour configurer la barre de progression. Utilise Invoke("ActiveEndFrame", audioDuration + 1) pour afficher l’écran de fin exactement à la fin de la voix.
EndActivity()Stoppe la musique et la voix off (utile si on quitte prématurément), retourne au menu et écrit les statistiques