Relevé dans le code le 2026-09-16. Même cause pour les quatre : XR-2 a réutilisé AppConfigurationLinkScreen tel quel, et cet écran sert quatre canaux qui n'ont pas les mêmes réglages. Le sélecteur bento ne pilote rien en VR (les spans sont portés par le lien de configuration, pas par les sections), la notification annonce « application mobile », la popup d'édition d'un casque est celle du kiosk avec la moitié des champs morte, et un bento VR suppose des spans par section jusque dans Unity. Plan dans v2/vr-menu-bento-plan.md, carte kanban 340. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
22 lines
3.6 KiB
Markdown
22 lines
3.6 KiB
Markdown
---
|
||
title: Le menu VR n'est pas ce que le manager laisse configurer
|
||
area: doc
|
||
horizon: v2
|
||
tags: XR, manager-app, manager-service
|
||
flag: warn | V2 · 4 écarts entre l'onglet VR et le casque
|
||
src: v2/vr-menu-bento-plan.md · relevé dans le code le 2026-09-16
|
||
---
|
||
<p>L'onglet <strong>Main / VR</strong> réutilise <code>AppConfigurationLinkScreen</code>, l'écran de configuration partagé avec le mobile, le web et le kiosk (choix assumé de <code>XR-2</code> : « zéro code neuf »). Il en hérite <strong>quatre comportements qui ne correspondent à rien en VR</strong>, relevés dans le code le 2026-09-16.</p>
|
||
|
||
<p>🔴 <strong>Le sélecteur de forme bento ne pilote rien dans le casque.</strong> Les spans sont portés par le <strong>lien de configuration</strong> (<code>AppConfigurationLink.cs:35</code>, commentaire d'origine : « Specific Mobile & Web ») et ne servent qu'à l'écran « choisis ta configuration » du mobile et du web. Or un casque est appairé à <strong>une seule</strong> configuration : <strong>cet écran n'existe pas en VR</strong>. Le menu affiche les <em>sections</em> racines, toutes à la même taille — <code>grep -r "Span" Assets/Scripts</code> ne rend rien, <code>ConfigurationExport</code> n'a aucun champ span.</p>
|
||
|
||
<p>➡️ <strong>Décision : le bento VR doit porter sur les sections</strong>, pas sur les configurations. Sans ça les boutons resteront décoratifs quoi qu'on fasse. Ça demande <code>GridColSpan</code>/<code>GridRowSpan</code> sur <code>Section</code> (entité, DTO, migration, client API édité à la main) — l'export les transporte ensuite gratuitement — puis un placement dense par spans côté Unity. <strong>L'arc est conservé</strong> : ce n'est pas un défaut de rendu, un mur plat se regarde de biais sur ses bords. La grille est calculée en cellules, puis chaque cellule est <em>mappée</em> sur un angle et une hauteur. Cible <strong>6 colonnes × 2 rangées</strong> — le confort visuel en VR c'est ±60°, ce qui donne naturellement le format paysage proche du rendu web.</p>
|
||
|
||
<p>🟠 <strong>La notification annonce la mauvaise app.</strong> Modifier un contenu VR affiche « application mobile mise à jour ». Le paramètre existe déjà (<code>appUpdatedLabel</code>, <code>app_configuration_link_screen.dart:144</code>) et n'est simplement pas passé par <code>vr_screen.dart</code>. Une clé i18n et quatre lignes — <strong>~15 minutes</strong>.</p>
|
||
|
||
<p>🟠 <strong>La popup d'édition d'un casque est celle du kiosk.</strong> Largeur figée à 580, une colonne scrollée, et deux boutons dont les libellés « Annuler »/« Changer » sont <strong>en dur</strong>. Mais le vrai problème n'est pas la mise en page : <strong>la moitié des champs est morte en VR</strong> — couleur principale, couleur de fond, loader, pourcentage d'arrondis, place des sections, fond d'image, heure, date. <code>grep -r</code> sur <code>Assets/Scripts</code> : <strong>zéro occurrence</strong> de chacun. Un casque n'a ni écran de chargement 2D ni horloge d'accueil. À remplacer par une popup VR dédiée, paysage deux colonnes.</p>
|
||
|
||
<p>⚠️ <strong>Ce que ce chantier dit du reste</strong> : les quatre écarts ont la même cause — un écran partagé par quatre canaux qui n'ont pas les mêmes réglages. Le plan recommande d'<strong>en sortir</strong> pour la VR plutôt que d'y ajouter un quatrième cas particulier.</p>
|
||
|
||
<p><strong>Ordre</strong> : la notification (indépendante, 15 min) → la popup (indépendante) → les spans backend + manager → le rendu Unity (rien de visible avant). Quatre mini-prompts de lancement sont en fin de plan.</p>
|