Skip to main content

UI et prefabs By Year

Socle commun

Assets/Src/UI/SimByYear/ contient l'UI réutilisée par les jeux annuels. Le contenu métier propre à ENT1/HR1/MGT1/MK1/MK2 reste dans Assets/GameSpecific/<gameUid>/Src/UI et leurs prefabs Resources.

Contrôles principaux

Domaine Classes
Simulation sync/async SimByYearControlBase, SimByYearSyncControl, SimByYearAsyncControl
Années ActivityYearsControl, YearItemControl, WaitSimStartPopupControl
Décisions DecisionsByYearControl, DecisionsPanelByYear
Évaluation EvaluationByYearSyncControl, EvaluationByYearAsyncControl, StudentEval lines
Reports DetailedReport*, ActPerfEval*
Logbook LogBookControl, LogbookEvalPopupControl, LogbookRoleControl
Rankings RankingsPanelControl, HiScoresPopupControl, FinalSequenceRankingsControl
Events EventHistoryPopupControl + rows game-specific

Final sequence

Les contrôles FinalSequence* gèrent la fin de simulation, les équipes, classements et trophées. Ils consomment les rankings/résultats générés côté serveur.

Règle de maintenance

Une UI qui ne connaît ni segment MK, ni employee HR, ni factory ENT, ni feature MGT appartient ici. Dès qu'un écran manipule une structure propre à un jeu, le code et le prefab doivent rester dans GameSpecific.

Ajouter un écran de décision ou un report By Year

Écran réellement commun

Les contrôles de cycle, années, eval, rankings, logbook et final sequence peuvent vivre sous Assets/Src/UI/SimByYear. Une UI qui connaît un type métier game-specific doit rester sous Assets/GameSpecific/<gameUid>/Src/UI.

Nouvel écran de décision game-specific

  1. Créer le contrôle sous GameSpecific/<gameUid>/Src/UI.
  2. Créer/mettre à jour le prefab dans les Resources du jeu.
  3. Lire la décision depuis TeamController<Game>/TeamDecisions<Game>.
  4. Envoyer les changements via la custom command game-specific, pas en modifiant seulement le modèle local.
  5. Écouter le message game-specific pour les modifications d'un coéquipier.
  6. Ajouter les textes.
  7. Ajouter un TutorialUIObject si l'écran participe à un tutoriel.

Nouveau report de résultats

  1. Ajouter le champ dans le modèle Results<Game>.
  2. Créer le contrôle/report UI.
  3. Brancher le report panel/detailed report du jeu.
  4. Gérer année sélectionnée, équipe sélectionnée et teacher/student permissions.
  5. Tester résultat absent (année non générée), année courante et années historiques.

Sync vs async

Les écrans communs ont souvent des variantes SimByYearSyncControl et SimByYearAsyncControl, ainsi que des contrôles d'évaluation sync/async. Avant d'ajouter un bouton “commun”, vérifier s'il est valide dans les deux modes.

Checklist prefab/UI By Year

  • student + teacher;
  • sync + async si applicable;
  • année 1 + historique;
  • avant résultats + après résultats;
  • RTT coéquipier;
  • textes FR/EN;
  • tutorial target si requis;
  • WebGL.