Introduction
RadialMenuUI est une bibliothèque C# pour créer des menus radiaux et des roues d'actions dans Grand Theft Auto V avec ScriptHookVDotNet 3.

Elle vient de la roue d'actions d'InteractV. Elle sépare le dessin et la gestion des contrôles du gameplay : votre mod ne fournit que les actions.
Pourquoi RadialMenuUI ?
Une roue d'actions dans GTA V se heurte à quelques problèmes :
- Les interfaces natives Scaleform sont rigides et lourdes à étendre.
- Le dessin 2D via ScriptHookV provoque facilement scintillements, étirements d'aspect ratio ou chutes de framerate.
- Les zones mortes (deadzones) des sticks de manette et les curseurs de souris déclenchent souvent des survols involontaires s'ils ne sont pas calibrés avec précision.
RadialMenuUI fournit la gestion des contrôles, le rendu et le chargement progressif des textures pour ces usages :
- Double Contrôle Hybride : Navigation au stick droit de la manette (avec zones mortes) et au curseur de souris sur un canevas virtuel 1280×720. Le dernier périphérique ayant bougé prend automatiquement la main.
- Rendu par textures natives : Utilise les fonctions de texture de ScriptHookV (
createTexture,drawTexture) et charge progressivement les textures, une par mise à jour, pour limiter le travail au premier affichage. - Sous-menus Hiérarchiques : Créez des menus à plusieurs niveaux avec fil d'Ariane et retour arrière.
- Pagination de Variantes : Associez plusieurs options à un seul secteur (météo, emotes, tenues) et faites-les défiler horizontalement avec la croix directionnelle (Gauche/Droite) ou la molette.
- Thèmes Personnalisables : Prise en charge de 3 à 10 secteurs (ou 12), couleurs, transparence, dimensions et icônes PNG sur mesure.
- Intégration gameplay : Helper
RadialMenuGameplayHostoptionnel assurant le maintien de la touche pour ouvrir, le ralenti cinématique, le blocage des commandes perturbatrices et la sécurité en cas de pause ou de mort.
Architecture Générale
RadialMenuUI est découpée en quatre couches :
- Données (
RadialMenuDef,RadialEntryDef,RadialVariantDef) : Objets purs de déclaration. Aucune dépendance sur le jeu. - Entrées (
IRadialMenuInput,GtaRadialMenuInput) : Abstraction des périphériques de saisie. - Contrôleur (
RadialMenuController) : Machine à états gérant les survols, les sous-menus, les variantes et le son. - Vue (
RadialMenuView,RadialMenuAssets) : Dessine l'anneau, la tranche active, le centre, les flèches et les icônes.
Sommaire de la Documentation
| Thème | Description |
|---|---|
| Installation | Comment ajouter RadialMenuUI.dll et les textures de base à votre projet. |
| Démarrage rapide | Créez une roue interactive dans un script ScriptHookVDotNet. |
| Menus | Création de sous-menus, roue ouverte après confirmation et disposition des tranches. |
| Variantes | Faire défiler plusieurs choix sur une seule tranche. |
| Thèmes | Personnalisation graphique des anneaux, couleurs et nombres de tranches. |
| Assets | Icônes par chemin ou clés de thème, et textures dynamiques. |
| Intégration Gameplay | Ralenti cinématique, touche maintenue et remplacement de la roue d'armes native. |
| Référence de l'API | Documentation complète des classes, méthodes et événements. |