Accueil Github ↗
Itération 3

Gestion des scènes

Chargement asynchrone des scènes : SceneDatabase (annuaire), SceneLoaderWithChargement (écran de chargement) et gestion des événements saisonniers.

Le dossier Commons/SceneManagement/ gère le passage fluide entre les menus et les mini-jeux.

SceneDatabase — catalogue des scènes

Annuaire statique qui fait le lien entre le code et les chemins de fichiers Unity. Au lieu d’écrire SceneManager.LoadScene("APA_01_Vallee") directement (qui plante si le fichier est renommé), on utilise une énumération stricte : SceneName.APA_01_Vallee.

MéthodeDescription
GetScenePath(SceneName sceneName)Prend une valeur de l’énumération et retourne le chemin exact.
GetRandomAPScenePath() / GetRandomAPAScenePath()Pioachent un chemin au hasard dans une sélection prédéfinie, pour que l’élève ne voie pas toujours le même décor.

SceneLoaderWithChargement — écran de chargement

Singleton qui gère l’écran de chargement. Le chargement d’une scène 3D peut figer l’écran quelques secondes. Ce script utilise le chargement asynchrone en arrière-plan pour garder le jeu fluide pendant qu’une barre de progression s’anime.

Fonctionnement de la coroutine principale

  1. Affiche l’écran de chargement.
  2. Demande à Unity de charger la scène en tâche de fond (allowSceneActivation = false).
  3. Force une attente minimale de 1 seconde (_minimumLoadingTime) même si le chargement est instantané — évite un clignotement trop rapide.
  4. Autorise l’affichage de la nouvelle scène.

Update() met à jour le slider (_slider) et le texte de pourcentage (_progressText) à chaque frame.

Gestion des événements saisonniers

EvenementManager — décorateur saisonnier

Composant réutilisable à attacher sur n’importe quel objet de décor. On règle les dates de début et de fin dans l’inspecteur (ex. du 15 décembre au 5 janvier) et il s’occupe d’afficher ou de cacher l’objet.

[!TIP] VérifierDate() gère le chevauchement d’années : si un événement commence en décembre (mois 12) et finit en janvier (mois 1), le script comprend qu’il faut vérifier si on est après la date de début ou avant la date de fin, et non entre les deux.

Noel.cs

Version simplifiée et codée en dur du précédent, conçue uniquement pour les décorations de Noël.