Build Unity, WebGL et versioning client

Build WebGL

Le build est défini dans Assets/Src/Editor/Builder.cs. Le menu Unity Uniksim → Build WebGL appelle WebGLBuild(), qui build Assets/game.unity vers le dossier Build/.

flowchart LR
CODE[Code + Prefabs + Resources] --> VER[version.txt / sub_version.txt]
VER --> MENU[Uniksim / Build WebGL]
MENU --> SCENE[Assets/game.unity]
SCENE --> BUILD[game/Build/Build/*]
BUILD --> DEPLOY[node.js/deploy/deployToCloud.bat]
DEPLOY --> SPACE[uniksim-data/version/*]
SPACE --> DB[constants table: active WebGL version]
DB --> WEB[Web app loads that version]

Version du client

Game.cs et l'UI de profil lisent ces fichiers. Assets/Src/Editor/AutoVersion.cs contient un ancien incrément automatique, mais son code est commenté : le build n'incrémente pas automatiquement version.txt.

Script de déploiement

Le déploiement du build WebGL est géré par :

deployToCloud.bat exécute node deploybuild.js. deployBuild.js lit automatiquement ../game/Assets/Resources/data/version.txt puis upload les artefacts dans uniksim-data sous un dossier portant cette version.

Fichiers uploadés

Fichier local Clé distante
game/Build/Build/Build.data.unityweb <version>/Build.data.unityweb
game/Build/Build/Build.wasm.unityweb <version>/Build.wasm.unityweb
game/Build/Build/Build.framework.js.unityweb <version>/Build.framework.js.unityweb
game/Build/Build/Build.loader.js <version>/Build.loader.js

Important : modifier version.txt avant le build et le déploiement. Le dossier distant est choisi à partir de cette valeur.

Version active dans la base de données

Après le déploiement, mettre à jour la version WebGL active dans la table constants de la base uniksim, enregistrement id = 1. Le backend la lit dans GameService.getVersion().

phpMyAdmin : https://db.uniksim.com/phpmyadmin/index.php?db=uniksim&table=constants&target=sql.php

Instance Colonne à modifier Propriété backend
alpha dev_version devVersion
alpha2 dev2_version dev2Version
demo demo_version demoVersion
demoLive demoLive_version demoLiveVersion
production / game live_version liveVersion

La valeur en DB doit correspondre exactement au contenu de version.txt qui vient d'être déployé. Sinon le frontend tentera de charger un autre dossier WebGL.

Quand rebuilder

Changement Rebuild Unity ?
C# Unity, scène, prefab, ScriptableObject Oui
JSON dans Resources à embarquer Oui
Cloud Script BrainCloud uniquement Non
Texte publié dynamiquement sur le serveur Pas nécessairement

Procédure complète

  1. Vérifier le diff Git et les assets/Resources sauvegardés.
  2. Choisir le nouveau numéro et modifier Assets/Resources/data/version.txt. Vérifier sub_version.txt si nécessaire.
  3. Lancer Uniksim → Build WebGL.
  4. Confirmer zéro erreur dans le BuildReport et vérifier les quatre artefacts dans game/Build/Build/.
  5. Depuis node.js/deploy/, lancer deployToCloud.bat.
  6. Dans phpMyAdmin, table uniksim.constants, mettre à jour la colonne de l'environnement ciblé avec la même version.
  7. Charger l'instance cible et confirmer que le nouveau build est utilisé.
  8. Tester login, chargement de simulation, ouverture du jeu et une commande BrainCloud.

Diagnostic rapide

Symptôme À vérifier
L'ancien build se charge Colonne *_version de constants.
404 sur les fichiers Unity Version DB vs dossier uploadé dans uniksim-data.
Mauvais dossier déployé version.txt avant deployToCloud.bat.
Changement Cloud Script absent Importer les Server Scripts BrainCloud; un rebuild Unity ne suffit pas.

Revision #5
Created 2026-09-18 19:10:44 UTC by Mathis
Updated 2026-09-18 19:54:09 UTC by Mathis