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]
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 : version principale;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

    1. Vérifier le diff Git et les assetsassets/Resources sauvegardés.
    2. VérifierChoisir le nouveau numéro et modifier Assets/Resources/data/version.txt. etVé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. IntégrerDepuis node.js/deploy/, lancer deployToCloud.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 contenunouveau debuild Build/est dans le frontend/déploiement prévu.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.