Skip to main content

Infrastructure runtime et utils Unity

Dossier

Assets/Src/Utils/ contient l'infrastructure Unity qui ne relève pas directement d'un domaine métier.

ComposantRôle
ContextState, State, MachineFondations des machines d'état.
ScheduledMachine, ContextScheduledMachine, SchedulerOrchestration d'états/tâches planifiées.
CoroutinerPoint d'accès aux coroutines pour les classes non-MonoBehaviour.
GameEventMessageUtilsÉvénements locaux UI/runtime distincts des messages RTT serveur.
GlobalTimeTemps serveur/global.
SharedConstantsGameUid, SimType et constantes transversales.
Utils / UtilsBaseHelpers client communs.
ExtensionsMéthodes d'extension C#.
ObjectPool, PoolableObject, PoolsManagerPooling d'objets Unity.
ImageLoaderChargement d'images.
SoundsManagerAudio commun.
TextsManagerLocalisation; documenté dans la page Textes.
GameSkinReloaderRechargement du skin.
ExcelUtilsHelpers d'export tableur utilisés notamment en By Module/WebGL.
TweenerAnimation/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.