Infrastructure runtime et utils Unity
Dossier
Assets/Src/Utils/ contient l'infrastructure Unity qui ne relève pas directement d'un domaine métier.
| Composant | Rôle |
|---|---|
ContextState, State, Machine | Fondations des machines d'état. |
ScheduledMachine, ContextScheduledMachine, Scheduler | Orchestration d'états/tâches planifiées. |
Coroutiner | Point d'accès aux coroutines pour les classes non-MonoBehaviour. |
GameEventMessageUtils | Événements locaux UI/runtime distincts des messages RTT serveur. |
GlobalTime | Temps serveur/global. |
SharedConstants | GameUid, SimType et constantes transversales. |
Utils / UtilsBase | Helpers client communs. |
Extensions | Méthodes d'extension C#. |
ObjectPool, PoolableObject, PoolsManager | Pooling d'objets Unity. |
ImageLoader | Chargement d'images. |
SoundsManager | Audio commun. |
TextsManager | Localisation; documenté dans la page Textes. |
GameSkinReloader | Rechargement du skin. |
ExcelUtils | Helpers d'export tableur utilisés notamment en By Module/WebGL. |
Tweener | Animation/tween utilitaire. |
HashInformation* | Informations/erreurs liées aux contrôles d'intégrité. |
CommandManager
CommandManager.cs est un gestionnaire historique des commandes GameSparks. Sa méthode SendCommand() refuse l'appel si le backend courant n'est pas eGameSparks. La voie BrainCloud moderne passe par BackEndBrainCloud.SendCommand(); ne pas confondre les deux systèmes.
Événements locaux vs RTT
flowchart LR
LOCAL[GameEventMessageUtils] --> UI[UI / transitions locales]
SERVER[BrainCloud RTT] --> DISPATCH[MessagesDispatcher]
DISPATCH --> CTRL[Controllers]
CTRL --> UI
Un événement UI local n'est pas une synchronisation serveur. Pour une feature multi-utilisateur, il faut généralement persister côté serveur puis recevoir un message RTT.
Règle de maintenance
Éviter d'ajouter de grosses règles métier dans Utils.cs. Une fonction Accounting, MK1, HR1, etc. doit vivre avec son domaine. Le dossier Utils doit rester transversal.