Le menu de contexte de l'avatar (MCA) facilite l'interaction entre les utilisateurs. Lorsque le MCA est activé dans votre jeu, un utilisateur peut s'approcher du personnage d'un autre utilisateur et cliquer sur lui pour ouvrir un petit menu avec plusieurs options par défaut. Le joueur peut envoyer une demande d'ami, commencer une conversation privée, consulter le profil de l'utilisateur ou faire un signe de la main.
Après l'activation du MCA dans votre jeu, vous pouvez personnaliser le MCA de plusieurs manières :
- Programmaticalement ouvrir et fermer le MCA pour des utilisateurs spécifiques.
- Personnaliser l'apparence du MCA pour créer une interface utilisateur unique.
Activer le menu de contexte de l'avatar
Le menu de contexte de l'avatar doit être activé à l'aide de l'option StarterGui:SetCore() "AvatarContextMenuEnabled" dans un LocalScript. Le MCA est mieux utilisé dans les jeux où il n'y a pas de comportement prédéfini pour cliquer sur d'autres utilisateurs.
Utilisez l'exemple de code suivant pour activer le MCA dans un LocalScript :
-- Exécuter dans un LocalScript, idéalement au sein de "StarterPlayerScripts"local StarterGui = game:GetService("StarterGui")StarterGui:SetCore("AvatarContextMenuEnabled", true)
Si vous devez détecter si le MCA est activé, vous pouvez utiliser le code suivant pour retourner un booléen sur l'état actuel du MCA :
---Renvoie un booléen indiquant si le MCA est actuellement activé.StarterGui:GetCore(AvatarContextMenuEnabled)
Ouvrir et fermer le MCA
Une fois activé, vous pouvez ouvrir et fermer le MCA de manière programmatique avec StarterGui.
Pour ouvrir le MCA de manière programmatique, utilisez le code suivant :
-- Utilisez StarterGui:SetCore où targetPlayer est un objet Player valideStarterGui:SetCore("AvatarContextMenuTarget", targetPlayer)
Pour fermer le MCA de manière programmatique, utilisez le code suivant :
StarterGui:SetCore("AvatarContextMenuTarget", nil)
Options de menu
Vous pouvez ajouter et supprimer des actions via la script. Par défaut, le menu a les options suivantes :
| Option de menu | Description |
|---|---|
| Ami | Envoie une demande d'ami à l'utilisateur sélectionné. |
| Chat | Ouvre une conversation privée avec l'utilisateur sélectionné dans le chat du jeu. |
| Voir | Ouvre une fenêtre pour inspecter l'apparence de l'utilisateur sélectionné. |
| Faire un signe | Initie une animation de signe de la main à l'utilisateur sélectionné. |
Une fois que le MCA est ouvert, l'utilisateur peut faire défiler et sélectionner d'autres utilisateurs sur le carrousel de sélection de personnages. Les personnages sont triés en fonction de la distance au personnage sélectionné. Le menu ne se met à jour que lorsqu'il est ouvert et la liste des utilisateurs disponibles se répète lors du défilement.

Ajouter des options de menu
Une fois activé, des actions spécifiques au jeu peuvent être ajoutées au MCA. Par exemple, un jeu pourrait permettre des demandes d'échange, des options d'ajout à la fête ou d'autres interactions spéciales.
L'exemple suivant montre comment ajouter une action personnalisée au menu de contexte de l'avatar :
local Players = game:GetService("Players")
local StarterGui = game:GetService("StarterGui")
local player = Players.LocalPlayer
-- Connecter une fonction à un "BindableEvent"
local bindableEvent = Instance.new("BindableEvent")
local function onCustomACMAction(targetPlayer)
-- À ce stade, vous pourriez appeler InvokeServer() sur un RemoteFunction pour alerter le serveur de la sélection
print("Événement MCA sélectionné par " .. player.Name .. " sur " .. targetPlayer.Name)
end
bindableEvent.Event:Connect(onCustomACMAction)
-- Ajouter l'option MCA en utilisant SetCore() avec "AddAvatarContextMenuOption"
local options = {"Action MCA personnalisée", bindableEvent}
StarterGui:SetCore("AddAvatarContextMenuOption", options)
Supprimer des options de menu
Vous pouvez supprimer des options personnalisées et les options par défaut Ajouter un ami, Chat, Voir et Faire un signe du MCA en faisant référence au nom de l'action personnalisée ou à l'énumération par défaut Enum.AvatarContextMenuOption.
Utilisez le code suivant pour supprimer une option de menu par défaut et personnalisée :
-- Supprimer l'option "Action MCA personnalisée"StarterGui:SetCore("RemoveAvatarContextMenuOption", "Action MCA personnalisée")-- Supprimer l'option par défaut "Ami" en faisant référence à l'énumération AvatarContextMenuOption.FriendStarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)
Personnaliser l'apparence du menu
Pour changer l'apparence du menu de contexte de l'avatar, appelez StarterGui:SetCore() avec l'option "AvatarContextMenuTheme", en fournissant une table de paramètres et de valeurs pour ajuster l'apparence du menu.
L'interface utilisateur du MCA comprend les sections suivantes :

A. Étiquette de nom : Le nom de l'utilisateur du personnage avec lequel on interagit.
B. Cadre de bouton : Contient tous les boutons du MCA.
C. Boutons : Boutons individuels pour les actions par défaut ou personnalisées du MCA.
Paramètres d'apparence
Voici les paramètres de personnalisation avec le MCA :
Arrière-plan
| BackgroundColor | Un Color3 pour l'arrière-plan global du MCA (le plus utile lorsqu'aucune image d'arrière-plan n'est utilisée). |
| BackgroundTransparency | Valeur de transparence (0–1) pour l'arrière-plan global du MCA (le plus utile lorsqu'aucune image d'arrière-plan n'est utilisée). |
| BackgroundImage | Un ID d'actif valide d'une image pour l'arrière-plan du MCA. |
| BackgroundImageTransparency | Valeur de transparence (0–1) pour l'image d'arrière-plan. |
| BackgroundImageScaleType | Un enum Enum.ScaleType pour le redimensionnement de l'image d'arrière-plan. |
| BackgroundImageSliceCenter | Un Rect spécifiant le centre d'une image à neuf tranches lorsque BackgroundImageScaleType est réglé sur Enum.ScaleType.Slice. |
Étiquette de nom
| NameTagColor | Un Color3 pour la barre montrant quel joueur est en cours d'interaction. |
| NameUnderlineColor | Un Color3 pour la fine ligne entre l'étiquette de nom et les boutons d'action. |
Cadre du bouton
| ButtonFrameColor | Un Color3 pour la section (cadre) contenant les boutons d'action. |
| ButtonFrameTransparency | Valeur de transparence (0–1) pour la section du cadre du bouton. |
Bouton
| ButtonColor | Un Color3 pour l'arrière-plan des boutons d'action du MCA. |
| ButtonTransparency | Valeur de transparence (0–1) pour la couleur d'arrière-plan des boutons d'action. |
| ButtonHoverColor | Un Color3 pour l'état "survol" des boutons d'action. |
| ButtonHoverTransparency | Valeur de transparence (0–1) pour la couleur "survol" des boutons d'action. |
| ButtonUnderlineColor | Un Color3 pour la fine ligne qui sépare chaque bouton d'action. |
| ButtonImage | Un ID d'actif valide d'une image pour l'arrière-plan des boutons. |
| ButtonImageScaleType | Un enum Enum.ScaleType pour le redimensionnement de l'image des boutons. |
| ButtonImageSliceCenter | Un Rect spécifiant le centre d'une image à neuf tranches lorsque ButtonImageScaleType est réglé sur Enum.ScaleType.Slice. |
Texte
| Font | Une valeur enum Enum.Font pour l'étiquette de nom et le texte des boutons. |
| TextColor | Un Color3 pour tout le texte dans le MCA. |
| TextScale | Une valeur flottante pour échelonner les tailles de texte par défaut de chaque élément. |
Image divers
| LeaveMenuImage | Un ID d'actif d'une image pour le bouton de fermeture du MCA. |
| ScrollLeftImage | Un ID d'actif d'une image pour le bouton "faire défiler à gauche" du carrousel. |
| ScrollRightImage | Un ID d'actif valide d'une image pour le bouton "faire défiler à droite" du carrousel. |
Personnage sélectionné
| SelectedCharacterIndicator | Le MeshPart qui flotte au-dessus de la tête d'un personnage pour indiquer qu'il est sélectionné. |
Taille et position
| Size | Un UDim2 pour la taille globale du MCA. |
| MinSize | Un Vector2 spécifiant la taille minimale du MCA. |
| MaxSize | Un Vector2 spécifiant la taille maximale du MCA. |
| AspectRatio | Une valeur flottante spécifiant la largeur et la hauteur relatives du MCA. |
| AnchorPoint | Le AnchorPoint du MCA. |
| OnScreenPosition | Un UDim2 spécifiant la position à l'écran du MCA (la position à laquelle il se déplace lors de l'ouverture). |
| OffScreenPosition | Un UDim2 spécifiant la position hors écran du MCA (la position d'où il s'anime lorsqu'il est ouvert/fermé). |
Exemple de personnalisation
L'exemple de code suivant personnalise le thème du MCA à l'aide de quelques paramètres de base :
local StarterGui = game:GetService("StarterGui")StarterGui:SetCore("AvatarContextMenuTheme", {BackgroundImage = "",BackgroundTransparency = 0.5,BackgroundColor = Color3.fromRGB(111, 145, 242),NameTagColor = Color3.fromRGB(0, 0, 200),NameUnderlineColor = Color3.fromRGB(213, 233, 255),ButtonFrameColor = Color3.fromRGB(15, 24, 65),ButtonFrameTransparency = 0.2,ButtonUnderlineColor = Color3.fromRGB(213, 233, 255),Font = Enum.Font.SciFi})
