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
Assets/Resources/data/version.txt: version principale utilisée pour le dossier de déploiement;Assets/Resources/data/sub_version.txt: sous-version utilisée hors live.
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 :
node.js/deploy/deployToCloud.bat— point d'entrée;node.js/deploy/deployBuild.js— script Node qui effectue l'upload.
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
- Vérifier le diff Git et les assets/Resources sauvegardés.
- Choisir le nouveau numéro et modifier
Assets/Resources/data/version.txt. Vérifiersub_version.txtsi nécessaire. - Lancer Uniksim → Build WebGL.
- Confirmer zéro erreur dans le
BuildReportet vérifier les quatre artefacts dansgame/Build/Build/. - Depuis
node.js/deploy/, lancerdeployToCloud.bat. - Dans phpMyAdmin, table
uniksim.constants, mettre à jour la colonne de l'environnement ciblé avec la même version. - Charger l'instance cible et confirmer que le nouveau build est utilisé.
- 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. |
No comments to display
No comments to display