Le menu contextuel Avatar (ACM) facilite l'interaction des utilisateurs les uns avec les autres.Lorsque l'ACM est activé dans votre expérience, un utilisateur peut se rendre jusqu'au personnage d'un autre utilisateur et cliquer dessus pour ouvrir un petit menu avec plusieurs options par défaut.Le joueur peut envoyer une demande d'ami, commencer une conversation privée, afficher le profil de l'utilisateur ou saluer.
Après l'activation de l'ACM dans votre expérience, vous pouvez personnaliser l'ACM des façons suivantes :
- Ouvrir et fermer le ACM de manière programmatique pour les utilisateurs spécifiques.
- Personnalisez l'apparence de l'ACM pour créer une interface utilisateur unique.
Activer le menu contextuel d'avatar
Le menu contextuel d'avatar doit être activé en utilisant l'option StarterGui:SetCore() "AvatarContextMenuEnabled" dans un LocalScript.L'ACM est le mieux utilisé dans des expériences 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 l'ACM dans un LocalScript :
-- Exécution dans un script local, idéalement dans "StarterPlayerScripts"local StarterGui = game:GetService("StarterGui")StarterGui:SetCore("AvatarContextMenuEnabled", true)
Si vous devez détecter si l'ACM est activé, vous pouvez utiliser le code suivant pour retourner un booléen sur l'état actuel de l'ACM :
--Retourne un booléen indiquant si l'ACM est actuellement activé.StarterGui:GetCore(AvatarContextMenuEnabled)
Ouvrir et fermer l'ACM
Une fois activé, vous pouvez ouvrir et fermer le programme ACM de manière programmatique avec StarterGui .
Pour ouvrir l'ACM de manière programmatique, utilisez le code suivant :
-- Utiliser StarterGui : SetCore où le joueur cible est un objet valide de joueurStarterGui:SetCore("AvatarContextMenuTarget", targetPlayer)
Pour fermer l'ACM de manière programmatique, utilisez le code suivant :
StarterGui:SetCore("AvatarContextMenuTarget", nil)
Options de menu
Vous pouvez ajouter et supprimer des actions via le scripting. Par défaut, le menu a les options suivantes :
Option du menu | Avertissement |
---|---|
Ami | Envoie une demande d'ami à l'utilisateur sélectionné. |
chat | Ouvre une conversation privée avec l'utilisateur sélectionné dans le chat en expérience. |
Afficher | Ouvre une fenêtre pour inspecter l'apparence de l'utilisateur sélectionné. |
Vague | Lance une animation de vague à l'utilisateur sélectionné. |
Une fois l'ACM ouvert, l'utilisateur peut faire défiler et sélectionner d'autres utilisateurs dans la galerie de sélection de caractères.Les caractères sont triés en fonction de la distance par rapport au caractère sélectionné.Le menu ne se met à jour que lorsqu'il est ouvert et la liste des utilisateurs disponibles se répétera lors du défilement.

Ajouter des options de menu
Une fois activé, des actions spécifiques à l'expérience peuvent être ajoutées à l'ACM.Par exemple, une expérience peut permettre des demandes d'échange, des options de groupe ou d'autres interactions spéciales.
L'exemple suivant montre comment ajouter une action personnalisée au menu contextuel de l'avatar :
local Players = game:GetService("Players")
local StarterGui = game:GetService("StarterGui")
local player = Players.LocalPlayer
-- Relier une fonction à un "BindableEvent"
local bindableEvent = Instance.new("BindableEvent")
local function onCustomACMAction(targetPlayer)
-- À ce stade, vous pouvez appeler InvokeServer() sur une fonction à distance pour alerter le serveur de la sélection
print("ACM event selected by " .. player.Name .. " on " .. targetPlayer.Name)
end
bindableEvent.Event:Connect(onCustomACMAction)
-- Ajoutez l'option ACM en utilisant SetCore() avec "AddAvatarContextMenuOption"
local options = {"Custom ACM Action", bindableEvent}
StarterGui:SetCore("AddAvatarContextMenuOption", options)
Supprimer les options de menu
Vous pouvez supprimer les options personnalisées et par défaut d'ajout d'amis, de chat, de vue et de vague de l'ACM en référençant le nom d'action personnalisé ou l'ENUM par défaut Enum.AvatarContextMenuOption.
Utilisez le code suivant pour supprimer une option de menu par défaut et personnalisé :
-- Supprimer l'option "Action ACM personnalisée"StarterGui:SetCore("RemoveAvatarContextMenuOption", "Custom ACM Action")-- Supprimez l'option par défaut "Ami" en référençant l'option AvatarContextMenuOption.Friend EnumStarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)
Personnaliser l'apparence du menu
Pour modifier l'apparence du menu contextuel 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 ACM comprend les sections suivantes :

A. Étiquette de nom : le nom d'utilisateur du personnage avec lequel on interagit.
B. Cadre de bouton : Contient tous les boutons ACM.
C. Boutons : Boutons individuels pour les actions ACM par défaut ou personnalisées.
Paramètres d'apparence
Ce sont les paramètres de personnalisation avec l'ACM :
Arrière-plan
Couleur de fond | Un Color3 pour l'arrière-plan global de l'ACM (le plus utile lorsqu'on n'utilise pas une image de fond). |
Transparence du fond | Valeur de transparence (0–1) pour l'arrière-plan global de l'ACM (la plus utile lorsqu'on n'utilise pas une image de fond). |
Image de fond | Un ID de ressource valide d'une image pour le fond ACM. |
Transparence de l'image de fond | Valeur de transparence (0–1) pour l'image de fond. |
Type d'échelle d'image de fond | Un Enum.ScaleType enum pour la mise à l'échelle de l'image de fond. |
Centre d'image de fond | Un Rect spécifiant le centre d'une image à neuf tranches lorsque BackgroundImageScaleType est défini sur Enum.ScaleType.Slice. |
Balise de nom
Nom de la couleur de la balise | Un Color3 pour la barre montrant avec quel joueur interagir. |
NomUnderlineColor couleur | Un Color3 pour la ligne fine entre la balise de nom et les boutons d'action. |
Cadre de bouton
Couleur du cadre de bouton | Un Color3 pour la section (cadre) contenant les boutons d'action. |
Transparence du cadre de bouton | Valeur de transparence (0–1) pour la section cadre de bouton. |
Bouton
Couleur du bouton | Un Color3 pour le fond des boutons d'action de l'ACM. |
Transparence des boutons | Valeur de transparence (0–1) pour la couleur de fond des boutons d'action. |
Couleur d'évocation du bouton | Un Color3 pour l'état "survoler" des boutons d'action. |
Transparence du survol du bouton | Valeur de transparence (0–1) pour la couleur « survoler» des boutons d'action. |
Couleur d'accrochage du bouton | Un Color3 pour la ligne fine qui sépare chaque bouton d'action. |
Image de bouton | Un ID de ressource valide d'une image pour le fond des boutons. |
Type d'échelle d'image bouton | Un Enum.ScaleType enum pour la mise à l'échelle de l'image du bouton. |
ButtonImageSliceCenter | Un Rect spécifiant le centre d'une image à neuf tranches lorsque ButtonImageScaleType est défini sur Enum.ScaleType.Slice . |
Texte
Police | Une valeur d'enumérité Enum.Font pour la balise de nom et le texte du bouton. |
Couleur du texte | Un Color3 pour tout le texte dans l'ACM. |
Échelle de texte | Une valeur flottante pour mettre à l'échelle les tailles de texte par défaut de chaque élément. |
Image variée
Quitter l'image du menu | Un ID de ressource d'une image pour le bouton de fermeture de l'ACM. |
Image défilement gauche | Un ID de ressource d'une image pour le bouton "défilement vers la gauche" du carrousel. |
Image de défilement droit | Un ID de ressource valide d'une image pour le bouton "défilement à droite" du carrousel. |
Personnage sélectionné
Indicateur de caractère sélectionné | Le MeshPart qui flotte au-dessus de la tête d'un caractère pour indiquer qu'il est sélectionné. |
Taille et position
Taille | Un UDim2 pour la taille globale de l'ACM. |
Taille minimale | Un Vector2 précisant la taille minimale de l'ACM. |
Taille maximale | Un Vector2 précisant la taille maximale de l'ACM. |
Ration d'aspect | Une valeur flottante spécifiant la largeur et la hauteur relatives de l'ACM. |
Point d'ancrage | Le AnchorPoint de l'ACM. |
Position sur l'écran | Un UDim2 précisant la position sur l'écran de l'ACM (la position où il tweens lorsqu'il est ouvert). |
Position hors écran | Un UDim2 précisant la position hors écran de l'ACM (la position où il tweens de/à lorsqu'il est ouvert/fermé). |
Personnalisation d'exemple
L'exemple de code suivant personnalise le thème ACM en utilisant 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})
