- PlayerController: block WASD/jump callbacks when ChatUI is open
- PlayerController: clic droit = unlock souris, clic gauche = re-lock (n'est plus un toggle)
- PlayerController: ajoute ResetInputs() appelé à l'ouverture du chat
- ChatUI: appelle ResetInputs() quand le panel s'ouvre pour éviter les touches collées
- NetworkManager: seed les joueurs déjà présents dans la room à la connexion
(les OnAdd Colyseus peuvent être manqués si l'état est décodé avant l'enregistrement des callbacks)
- NetworkManager: garde anti-doublon dans OnPlayerAdd
- NetworkManager: fallback sphere si remotePlayerPrefab est null
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Unity build last_build remplace build_mai
- NetworkSchema.cs: correction types sbyte pour int8 (fix OverflowException Colyseus)
- StatsTracker: envoi periodique toutes les 30s, plus de dependance aux round events
- StatsTracker: cooldown client 6s pour respecter le rate-limit serveur
- StatsPage: correction row.value au lieu de row[activeTab]
- StatsPage: suppression onglet Courses (racesPlayed)
- Backend index.js: logging POST /stats/update
- Scene Tutorial: mise a jour, suppression assets obsoletes (TutorialInfo, physicMaterials)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Backend:
- GET /rooms via matchMaker.query() pour lister les salles actives
- ArenaRoom: setMetadata avec nom de salle (Salle #<id6>)
NetworkManager:
- FetchRooms() / OnRoomsRefreshed event (UnityWebRequest GET /rooms)
- JoinByRoomId(), CreateRoom() en plus de JoinArena()
- Refactoring: PrepareJoin/FinishJoin/HandleJoinError pour eviter duplication
LobbyUI:
- Redesign: panel 620x520 avec setup perso (gauche) + liste rooms (droite)
- Bouton Rejoindre par salle, Creer une salle, Rejoindre n importe
- Pseudo pre-rempli depuis PlayerPrefs
- Refresh automatique toutes les 4s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
NetworkManager: inverser ordre OnDisconnected/Cleanup pour que les listeners
aient encore acces a LocalPlayerName au moment du callback.
StatsTracker: mettre en cache le nom a la connexion comme fallback supplementaire.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- ChatUI: PlayerName utilise PlayerPrefs comme fallback si non connecte
- NetworkManager: sauvegarde le nom dans PlayerPrefs a la connexion
- GameCanvas: version build bump -> 20260517b (cache bust)
- Nouveaux fichiers build_mai (data + wasm mis a jour)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- turnDamping 7→1.5, idleDrag 3→0.2 : comportement boule plus naturel
- Fix billboard : LookRotation inversé (texte faisant face à la caméra, pas dos)
s'applique aux labels local (PlayerController) et remote (RemotePlayerController)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
userId [Type(0)] inexistant cote serveur decalait tous les champs d un
cran : x recevait y, y recevait z, positions et rotations toutes fausses.
isReady etait en [Type(23)] alors que le serveur l envoie en index 20.
Les deux bugs cassaient toute la synchronisation reseau multi.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
rolld.io pointe sur CloudFront sans exposer le port 2567.
Le game server Coolify est accessible via game.rolld.kerboul.me (Traefik).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>