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[IntégrationWeb /app déploiementloads Web]that version]
Version du client
Assets/Resources/data/version.txt: versionprincipale;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
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
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
assetsassets/Resources sauvegardés. VérifierChoisir le nouveau numéro et modifierAssets/Resources/data/version.txt.etVérifiersub_version.txt.si nécessaire.- Lancer Uniksim → Build WebGL.
- Confirmer zéro erreur dans le
BuildReportet vérifier les quatre artefacts dansgame/Build/Build/. IntégrerDepuisnode.js/deploy/, lancerdeployToCloud.bat.
uniksim.constants, mettre à jour la colonne de l'environnement ciblé avec la même version.
Charger l'instance cible et confirmer que le Build/est Diagnostic rapide
*_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.