Introduction
RadialMenuUI est une librairie C# moderne, ultra-légère et haute performance de menus radiaux et de roues d'action pour Grand Theft Auto V, propulsée par ScriptHookVDotNet 3.

Conçue et éprouvée sur le terrain dans InteractV, cette librairie découple entièrement le rendu graphique et la gestion des contrôles de la logique de jeu, offrant aux moddeurs une interface radiale soignée, digne d'une production console.
Pourquoi RadialMenuUI ?
Concevoir une roue d'actions fluide et agréable dans GTA V présente plusieurs défis majeurs :
- 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 résout tous ces problèmes nativement :
- Double Contrôle Hybride : Navigation fluide 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 Natif Zéro-Lag : Appels directs aux fonctions graphiques C++ natives de ScriptHookV (
createTexture,drawTexture) avec préchauffage progressif (warmup). Aucun délai Scaleform, 60+ FPS constant. - Sous-menus Hiérarchiques : Créez des arborescences de menus complexes avec fil d'Ariane et retour arrière naturel.
- 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 Clé en Main : 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 respecte scrupuleusement le principe de responsabilité unique :
- 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 votre première roue interactive en 10 lignes de C#. |
| 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. |