╔════════════════════════════════════════════════════════════════╗
║   FIX : POPUP DÉCALÉ SUR LA MAP                                ║
║   Date : 7 novembre 2025                                       ║
║   Statut : ✅ CORRIGÉ ET VALIDÉ                               ║
╚════════════════════════════════════════════════════════════════╝

📋 PROBLÈME
-----------
Le popup avec vidéo apparaissait décalé quand on cliquait sur un
personnage de la map. Le décalage variait selon la position du scroll.

🔧 SOLUTION FINALE
------------------
Conversion correcte entre les deux Canvas ScreenSpaceOverlay en utilisant
GetWorldCorners() et calcul d'offset depuis le coin inférieur gauche.

📝 FICHIER MODIFIÉ
------------------
Scripts/MapManager.cs
  • ShowPopup(MapZone, RectTransform) - Lignes 1305-1345
  • UpdatePopupPosition() - Lignes 1020-1040
  • HandleClick() - Lignes 1235-1248

🔑 POINTS CLÉS
--------------
1. GetWorldCorners() retourne les 4 coins en espace "monde UI"
2. Centre de la zone = (corners[0] + corners[2]) / 2
3. Offset = zoneCenter - popupCanvasBottomLeft
4. anchoredPosition utilise cet offset (anchorMin/Max = 0,0)
5. UpdatePopupPosition() recalcule chaque frame → suit le scroll

✅ RÉSULTAT
-----------
• Popup parfaitement centré sur le personnage
• Suit le personnage en temps réel pendant le scroll
• Fonctionne quelle que soit la résolution
• Position stable au pixel près

💬 VALIDATION
-------------
Utilisateur : "magnifique ca marche !"

📚 DOCUMENTATION
----------------
docs/FIX_POPUP_DECALE.md
  → Explication détaillée de la solution
  → Tests effectués et validation
  → Code technique complet

═══════════════════════════════════════════════════════════════════
