Utilisation détaillée
Le subsystem principal : ADS Menu Subsystem
ADS Menu Subsystem est créé automatiquement avec la Game Instance. Il instancie et conserve la logique de menu active.
| Fonction | Description | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
GetMenuSystem | Récupère le subsystem depuis un Blueprint. Entrées
Sorties
| ||||||||||
Is Initialized | Vérifie que la logique a été créée. Entrées
Sorties
| ||||||||||
Get Menu Logic | Renvoie la logique active. Entrées
Sorties
| ||||||||||
Get Menu Logic From World | Raccourci pour récupérer la logique active. Entrées
Sorties
| ||||||||||
Get Menu Logic (Typed) | Renvoie la logique lorsqu'elle correspond à une classe demandée. Entrées
Sorties
| ||||||||||
Create Widget BP | Crée un widget sans l'ajouter au viewport. Entrées
Sorties
|
La logique Blueprint : BP_ADS_MenuSystem
L’asset fourni se nomme BP_ADS_MenuSystem. C’est la logique Blueprint principale, construite sur la classe C++ ADS_MenuLogicBase. Cette classe est instanciée et utilisée par le subsystem principal.
Si vous souhaitez étendre ou modifier ses fonctionnalités, cela est possible : cette logique a été créée en Blueprint justement pour vous le permettre. Dans ce cas, il est fortement recommandé de dupliquer cet asset avant toute modification, par mesure de sécurité.
Les fonctions
Les fonctions ci-dessous constituent l’API d’ouverture et de fermeture des UI et des menus. Les pins d’exécution ne sont volontairement pas listés.
| Fonction | Description | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ShowUI | Affiche l’UI fournie, avec l’ordre d’affichage demandé. Entrées
| ||||||||||||
HideUI | Masque l’UI fournie. Entrées
| ||||||||||||
ShowMenu | Affiche le menu fourni et prépare son interaction. Entrées
| ||||||||||||
HideMenu | Masque le menu fourni et restaure les éléments demandés. Entrées
|
Event Dispatchers
| Event Dispatcher | Description | ||||
|---|---|---|---|---|---|
On Game Paused | Se déclenche lors d’un changement d’état de pause.
|
Le player subsystem : ADS Player Subsystem
ADS Player Subsystem est associé au joueur local et détecte le dernier périphérique utilisé.
| Fonction / Event Dispatcher | Description | ||||||||
|---|---|---|---|---|---|---|---|---|---|
Is Last Input Gamepad | Indique si la dernière entrée vient d'une manette. Entrées
Sorties
| ||||||||
Get Last Input Type | Renvoie le dernier type d'entrée. Entrées
Sorties
| ||||||||
On Last Input Type Changed | Dispatcher à lier pour actualiser les indications.
|
L'Actor Component : AC_MenuSystemConfig
Ajoutez AC_MenuSystemConfig au Blueprint du personnage ou du Player Controller du joueur local. Il relie ce joueur aux contextes d'entrées du système.
Paramètres
| Paramètre | Utilisation |
|---|---|
MenuContextMapping | Structure S_Context utilisée lorsque le joueur interagit avec un menu. |
TravelContextMapping | Structure S_Context utilisée pendant le gameplay. |
UI_Notifications | Référence vers le widget de notifications. |
NotificationLinesMax / NotificationDuration | Nombre maximal de lignes et durée d'affichage. |
DT_DynamicIcons | Data Table utilisée pour les icônes dynamiques. |
Utilisez GetMenuSystem pour obtenir la logique, ShowUI pour afficher une UI, et SetMenuMappingContext ou SetTravelMappingContext pour changer le contexte.
Les UI
Une UI est un Widget Blueprint destiné à afficher une information ou une interface non interactive. Le plugin fournit UI_Parent comme base : conservez cet asset intact et créez toujours un enfant dans le contenu de votre projet.
Créer une UI
Créez un Widget Blueprint enfant de UI_Parent dans le contenu de votre projet.
Les fonctions
Votre UI enfant hérite des fonctions de UI_Parent. Surchargez (Override) les fonctions suivantes lorsque vous devez ajouter une logique propre à l’apparition ou à la disparition de l’UI. Dans le graphe de la fonction surchargée, faites un clic droit sur le nœud d’entrée, puis choisissez Add Call to Parent Function. Il est fortement conseillé d’appeler cette fonction parent afin de conserver le comportement fourni par le plugin.
| Fonction | Description | ||||
|---|---|---|---|---|---|
Show (à override) | Affiche l’UI. Cette fonction est appelée par la logique du système. Entrées
| ||||
Hide (à override) | Masque l’UI. Cette fonction est appelée par la logique du système. |
Les Menus
Un menu est un Widget Blueprint interactif basé sur UI_Menu_Parent. Cette classe fournit la base du menu, la gestion des groupes de boutons et du survol. Créez vos menus dans le contenu de votre projet ; ne modifiez pas l’asset fourni.
Créer un menu
Créez un Widget Blueprint enfant de UI_Menu_Parent dans le contenu de votre projet.
Les fonctions
Votre menu enfant hérite des fonctions de UI_Menu_Parent. Les fonctions Show et Hide sont à surcharger (Override) lorsque le menu doit exécuter une logique supplémentaire à son ouverture ou à sa fermeture. Dans le graphe de la fonction surchargée, faites un clic droit sur le nœud d’entrée, puis choisissez Add Call to Parent Function. Il est fortement conseillé d’appeler cette fonction parent afin de préserver le comportement de base du menu.
| Fonction | Description | ||||||||
|---|---|---|---|---|---|---|---|---|---|
Show (à override) | Affiche le menu. Entrées
| ||||||||
Hide (à override) | Masque le menu. | ||||||||
FindButtons | Recherche les boutons présents dans le menu afin de préparer leur gestion. | ||||||||
AddButton | Ajoute un bouton à un groupe. Entrées
| ||||||||
RemoveButtonsOfGroup | Retire les boutons d’un groupe. Entrées
| ||||||||
RemoveButton | Retire un bouton de la gestion du menu. Entrées
| ||||||||
GetCurrentGroup | Récupère le groupe actuellement utilisé. Sorties
| ||||||||
SetCurrentGroup | Définit le groupe utilisé par le menu. Entrées
| ||||||||
IsGroupValid | Vérifie qu’un groupe peut être utilisé. Entrées
Sorties
| ||||||||
GetAllButtons | Récupère tous les boutons gérés par le menu. Sorties
| ||||||||
GetButtonsOfGroup | Récupère les boutons d’un groupe. Entrées
Sorties
| ||||||||
GetButtonAtIndex | Récupère un bouton à un index donné. Entrées
Sorties
| ||||||||
HoverByIndex | Place le survol sur un bouton selon son index. Entrées
| ||||||||
HoverByIncrement | Déplace le survol selon un incrément. Entrées
| ||||||||
GetHoveredButton | Récupère le bouton actuellement survolé. Sorties
| ||||||||
ClampIndex | Contraint un index à une valeur utilisable par le groupe courant. Entrées
Sorties
|
Les boutons
Les boutons d’un menu reposent sur BTN_Parent. Cette classe fournit une base commune aux boutons du système. Créez des enfants dans le contenu de votre projet pour étendre leur apparence et leurs fonctionnalités.
Classes et structures fournies
| Élément | Rôle |
|---|---|
BTN_Parent | Classe de base fournie pour les boutons gérés par un menu. Les enfants du projet peuvent étendre son apparence et ses fonctionnalités. |
BPI_MenuButton | Interface Blueprint utilisée pour l’échange entre le menu et ses boutons. |
BTN_Text_Demo | Exemple de bouton textuel fourni dans le contenu de démonstration. |
BTN_Section_Demo | Exemple de bouton de section : il lie le bouton à une page d’un Widget Switcher et active automatiquement cette page. |
S_ButtonInfos | Structure associant un Button à son Index. |
S_ButtonGroup | Structure de navigation contenant Buttons et CurrentIndex. |
Les assets suffixés _Demo sont des exemples. Ils servent de référence et ne sont pas des classes à modifier dans le plugin.
Créer un bouton
- Créez un Widget Blueprint enfant de
BTN_Parentdans le contenu de votre projet. - Construisez son apparence dans le Designer : texte, image, bordure, animation ou tout autre widget nécessaire.
- Placez le bouton dans le Designer d’un menu enfant de
UI_Menu_Parent.
Paramètres exposés par le bouton
Ces paramètres sont exposés au Widget Blueprint qui contient le bouton. Ils sont renseignés depuis ce widget conteneur, et non lors de la création de la classe enfant du bouton.
| Paramètre | Utilisation |
|---|---|
GroupOfButton | Nom du groupe auquel appartient le bouton. |
IndexOfButton | Index du bouton dans ce groupe. |
ActionName | Nom de l’action associée au bouton. |
Les fonctions
Votre bouton enfant hérite du comportement de BTN_Parent. Lorsque vous surchargez une fonction fournie par ce parent, faites un clic droit sur le nœud d’entrée de la fonction, puis choisissez Add Call to Parent Function. Il est fortement conseillé de conserver cet appel afin de préserver la logique du parent.
| Fonction / interface | Description | ||||
|---|---|---|---|---|---|
Hover (à override) | Applique l’état de survol au bouton. | ||||
UnHover (à override) | Retire l’état de survol du bouton. | ||||
Action (à override) | Point d’extension pour le comportement déclenché par le bouton. | ||||
AddMenuButton (interface BPI_MenuButton) | Reçoit le menu propriétaire lorsque le bouton est enregistré. Entrées
| ||||
ExecuteButtonAction (interface BPI_MenuButton) | Déclenche l’action associée au bouton. Entrées
|
Dynamic Icons
Les Dynamic Icons permettent d’afficher, pour une même action, le visuel correspondant au dernier type de périphérique utilisé. Par exemple, une même indication peut afficher une touche de clavier, un bouton Xbox, PlayStation ou Switch.
Éléments fournis
| Élément | Rôle |
|---|---|
UI_DynamicIcon | Widget à placer dans une UI ou un menu. Il choisit et affiche la variante adaptée au périphérique courant. |
DT_ControllersIcons | Data Table qui associe chaque clé d’icône à ses variantes par périphérique. |
S_ControllersIcons | Structure d’une ligne de la Data Table. Elle contient les variantes KeyboardMouse, XBox, PlayStation et Switch. |
S_ControllerIcon | Structure d’une variante. Elle permet d’utiliser soit une Texture, soit un Widget lorsque bUseWidget est activé. |
E_ControllerTypes | Énumération des types de périphériques pris en charge. |
BPI_DynamicIcon | Interface utilisée entre un menu et ses Dynamic Icons. |
UI_Icon_Default | Widget d’icône fourni comme base visuelle. |
Configurer les données d’icônes
- Dupliquez
DT_ControllersIconsdans le contenu de votre projet si vous souhaitez modifier ou compléter les icônes fournies. - Dans chaque ligne, renseignez les variantes nécessaires :
KeyboardMouse,XBox,PlayStationetSwitch. - Pour chaque variante, utilisez une
Textureou activezbUseWidgetet fournissez unWidget. - Dans
BP_ADS_MenuSystem, affectez cette Data Table àDT_DynamicIcons.
Le nom de chaque ligne est sa clé d’icône. Il doit être stable : les widgets l’utilisent pour retrouver leurs variantes.
Utiliser une Dynamic Icon dans une UI ou un menu
- Ajoutez
UI_DynamicIcondans le Designer de l’UI ou du menu concerné. - Dans ses détails, renseignez
RowNameavec le nom exact d’une ligne deDT_DynamicIcons. - Ajustez sa mise en page comme n’importe quel widget UMG.
Une fois configuré, le widget affiche la variante correspondant au périphérique courant et se met à jour lorsque le dernier type de périphérique utilisé change.
Les fonctions
Les fonctions suivantes appartiennent à la logique fournie par UI_DynamicIcon. Dans l’utilisation normale du widget, la configuration de DT_DynamicIcons et de RowName est suffisante ; elles servent surtout si vous créez un comportement personnalisé.
| Fonction / interface | Description |
|---|---|
InitializeIcon | Lit la ligne identifiée par RowName et prépare l’affichage de l’icône. |
UpdateIcon | Actualise l’icône affichée selon le périphérique courant. |
BindUpdateIcon | Gère l’abonnement ou le désabonnement à la mise à jour liée au changement de périphérique. |
AddIcon (interface BPI_DynamicIcon) | Permet au menu de référencer une Dynamic Icon. |
Notifications
Le système de notifications affiche des messages temporaires à l’écran. La logique est fournie par BP_ADS_MenuSystem et le rendu par les widgets du dossier Notification.
Éléments fournis
| Élément | Rôle |
|---|---|
UI_Notifications | Widget qui reçoit et organise les lignes de notification affichées. |
UI_NotificationLineParent | Classe parent commune aux lignes de notification. |
UI_NotificationLineText | Ligne destinée à une notification composée d’un texte. |
UI_NotificationLineTextIcon | Ligne destinée à une notification composée d’un texte et d’une icône. |
UI_NotificationLineTextTitle | Ligne destinée à une notification composée d’un titre et d’un texte. |
BPI_Notifications | Interface utilisée entre le gestionnaire de notifications et les lignes affichées. |
S_UserWidgetArray | Structure utilisée par la logique de notifications pour regrouper des références de widgets. |
Configurer les notifications
- Dans
BP_ADS_MenuSystem, vérifiez queUI_Notificationsréférence le widget de notifications à utiliser. - Utilisez les widgets de ligne fournis tels quels, ou créez des enfants dans le contenu de votre projet pour adapter leur apparence.
- Réglez
NotificationLinesMaxpour définir le nombre maximal de lignes affichées simultanément. - Réglez
NotificationDurationpour définir la durée d’affichage par défaut.
Les fonctions
Appelez ces fonctions sur l’instance de BP_ADS_MenuSystem pour afficher une notification. Les pins d’exécution ne sont pas listés.
| Fonction | Description | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
ShowNotificationText | Affiche une notification composée d’un texte. Entrées
| ||||||||||
ShowNotificationTextIcon | Affiche une notification composée d’un texte et d’une icône. Entrées
| ||||||||||
ShowNotificationTextTitle | Affiche une notification composée d’un titre et d’un texte. Entrées
|