Skip to main content

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 : version principale 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.bat — point d'entrée; node.js/deploy/deployBuild.js — script Node qui effectue l'upload.

    deployToCloud.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

    Fichier localClé 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 : 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

    Instance / URLColonne DB à modifierPropriété backend
    alphadev_versiondevVersion alpha2dev2_versiondev2Version demodemo_versiondemoVersion demoLivedemoLive_versiondemoLiveVersion production / gamelive_versionliveVersion

    La 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

    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 de build et déploiement

    1. Vérifier le diff Git, les scènes/prefabs sauvegardés et les Resourcesassets à embarquer.sauvegardés.
    2. Choisir le nouveau numéro de version et modifierVérifier Assets/Resources/data/version.txt. Vérifier aussiet sub_version.txt si l'environnement concerné l'utilise..
    3. Dans Unity, lancerLancer Uniksim → Build WebGL.
    4. Confirmer zéro erreur dans le BuildReport et vérifier que les quatre fichiers existent sous game/Build/Build/.
    5. DepuisIntégrer le contenu de node.js/deploy/, lancer deployToCloud.bat. Le script doit afficher Deploying version <version> et uploader les quatre artefacts.
    Ouvrir la table uniksim.constantsBuild/ dans phpMyAdmin et modifier la colonne correspondant à l'environnement ciblé avec le mêmefrontend/déploiement numéro que version.txt. Charger l'instance cible et vérifier que le client récupère bien la nouvelle version.prévu. Tester au minimum : login, chargement d'unede simulation, ouverture du jeu et une commande BrainCloud.

    Diagnostic rapide

    SymptômeVérification
    L'ancien build se charge encoreVérifier la colonne *_version de constants pour l'instance utilisée. 404 sur les fichiers UnityVérifier que la version DB correspond au dossier uploadé dans uniksim-data. Le déploiement publie sous le mauvais dossierVérifier version.txt avant de lancer deployToCloud.bat. Le build existe mais plante au lancementVérifier les quatre artefacts, la console navigateur et les headers/MIME du storage. Une modification Cloud Script n'apparaît pasUn rebuild Unity n'est pas la solution : vérifier l'import des Server Scripts BrainCloud.