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]WEB[Intégration DEPLOY/ -->déploiement SPACE[uniksim-data/version/*]
SPACE --> DB[constants table: active WebGL version]
DB --> WEB[Web app loads that version]Web]
Version du client
Assets/Resources/data/version.txt: versionprincipale utilisée pour le dossier de déploiement;principale;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.batnode.js/deploy/deployBuild.jsdeployToCloud.bat exécute simplement node deploybuild.js. Le script deployBuild.js lit automatiquement la version dans ../game/Assets/Resources/data/version.txt, puis upload les artefacts du build dans le storage uniksim-data sous un dossier portant exactement cette version.
Fichiers uploadés
game/Build/Build/Build.data.unityweb<version>/Build.data.unitywebgame/Build/Build/Build.wasm.unityweb<version>/Build.wasm.unitywebgame/Build/Build/Build.framework.js.unityweb<version>/Build.framework.js.unitywebgame/Build/Build/Build.loader.js<version>/Build.loader.jsImportant : le script choisit le dossier distant à partir de version.txt. Il faut donc modifier la version avant le build et le déploiement, sinon le build sera publié sous l'ancien numéro.
Version active dans la base de données
Après avoir uploadé le build, il faut mettre à jour la version WebGL active dans la table constants de la base uniksim. Le backend lit l'enregistrement id = 1 via GameService.getVersion().
Accès phpMyAdmin : https://db.uniksim.com/phpmyadmin/index.php?db=uniksim&table=constants&target=sql.php
alphadev_versiondevVersionalpha2dev2_versiondev2Versiondemodemo_versiondemoVersiondemoLivedemoLive_versiondemoLiveVersiongamelive_versionliveVersionLa valeur mise dans cette colonne doit correspondre exactement au contenu de Assets/Resources/data/version.txt qui vient d'être déployé. Sinon le frontend demandera un autre dossier de build que celui qui vient d'être uploadé.
Quand rebuilder
Procédure complète de build et déploiement
- Vérifier le diff Git
, les scènes/prefabs sauvegardéset lesResourcesassetsà embarquer.sauvegardés. Choisir le nouveau numéro de versionet modifierVérifierAssets/Resources/data/version.txt.Vérifier aussietsub_version.txtsi l'environnement concerné l'utilise..Dans Unity, lancerLancer Uniksim → Build WebGL.- Confirmer zéro erreur dans le
BuildReportet vérifier que les quatre fichiers existent sous.game/Build/Build/ DepuisIntégrer le contenu denode.js/deploy/, lancerdeployToCloud.bat. Le script doit afficherDeploying version <version>et uploader les quatre artefacts.
uniksim.constantsBuild/ dans version.txtDiagnostic rapide
*_versionconstantsuniksim-dataversion.txtdeployToCloud.bat