Menu contextuel Avatar

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Le Menu contextuel d'avatar (ACM) rend plus facile pour les utilisateurs d'interagir entre eux. Lorsque l'ACM est activé dans votre expérience, un utilisateur peut marcher jusqu'à un autre utilisateur's character et cliquer dessus pour ouvrir un petit menu avec plusieurs options par défaut. Le joueur peut envoyer une demande d'ami, commencer un chat privé ou afficher le profil de l'utilisateur, ou wave.

Après avoir activé l'ACM dans votre expérience, vous pouvez personnaliser l'ACM de la façon suivante :

  • Programmatoirement ouvrir et fermer l'ACM pour des utilisateurs spécifiques.
  • Ajouter des options personnalisées et supprimer les options existantes à l'ACM.
  • Personnalisez l'apparence de l'ACM pour créer une interface utilisateur unique.

Activer le menu contextuel Avatar

Le menu contextuel Avatar doit être activé en utilisant l'option StarterGui:SetCore() "AvatarContextMenuEnabled" dans un LocalScript . Le ACM est le mieux utilisé dans les 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écutez dans un LocalScript, idéalement dans "StarterPlayerScripts"
local StarterGui = game:GetService("StarterGui")
StarterGui:SetCore("AvatarContextMenuEnabled", true)

Si vous devez détecter si le ACM est activé, vous pouvez utiliser le code suivant pour renvoyer un booléen sur l'état actuel de l'ACM :


--:- renvoie un booléen indiquant si le ACM est actuellement activé.
StarterGui:GetCore(AvatarContextMenuEnabled)

Ouverture et fermeture de l'ACM

Une fois activé, vous pouvez ouvrir et fermer le programme ACM de manière programmatique avec StarterGui.

Pour ouvrir programmiquement l'ACM, utilisez le code suivant :


-- Utilisez StarterGui:SetCore où targetPlayer est un objet de joueur valide
StarterGui:SetCore("AvatarContextMenuTarget", targetPlayer)

Pour programmer la fermeture de l'ACM, 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 de menuDescription
AmiEnvoye une demande d'ami à l'utilisateur sélectionné.
chatOuvre une conversation privée avec l'utilisateur sélectionné dans le chat dans l'expérience.
AfficherOuvre une fenêtre pour inspecter l'apparence du utilisateur sélectionné.
VagueInitie une animation de vague pour l'utilisateur sélectionné.

Une fois l'ACM ouvert, l'utilisateur peut défiler et sélectionner d'autres utilisateurs sur la chariotte de sélection du personnage. Les caractères sont triés en fonction de la distance du personnage sélectionné. Le menu ne s'更新 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 d'ajout à la fête ou d'autres interactions spéciales.

L'exemple suivant montre comment ajouter une action personnalisée au menu contextuel Avatar :


local Players = game:GetService("Players")
local StarterGui = game:GetService("StarterGui")
local player = Players.LocalPlayer
-- Connectez une fonction à un « BindableEvent »
local bindableEvent = Instance.new("BindableEvent")
local function onCustomACMAction(targetPlayer)
-- À ce moment, 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)

Suppression des options de menu

Vous pouvez supprimer les options d'ajout personnalisé et par défaut de l'ACM en référençant le nom d'action personnalisé ou le chatpar défaut Enum.AvatarContextMenuOption .

Utilisez le code suivant pour supprimer une option de menu par défaut et personnalisée :


-- Supprimez l'option « Action personnalisée de l'ACM »
StarterGui:SetCore("RemoveAvatarContextMenuOption", "Custom ACM Action")
-- Supprimez l'option « Friend » par défaut en référençant l'avenue contextuelle Menu d'option Friend
StarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)

Personnalisation de l'apparence du menu

Pour modifier l'apparence du menu contextuel 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 inclut les sections suivantes :

A. Nom de la balise de nom : nom de l'utilisateur du personnage avec lequel interagir.

B. Frame 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 :

Aperçu

Couleur de l'arrière-planUn Color3 pour le fond de l'ACM (le plus utile lorsque vous n'utilisez pas d'image de fond).
Transparence de l'arrière-planValeur de transparence (0-1) pour le fond de l'ACM (le plus utile lorsque vous n'utilisez pas d'image de fond).
Image de fondUn ID d'image valide pour le fond de l'ACM.
Transparence de l'image de fondValeur de transparence (0-1) pour l'image de fond.
Type d'échelle d'image de fondUn Enum.ScaleType 枚 pour l'échelle d'image de fond.
Fond d'écran de SliceCenterUn Rect spécifiant le centre d'une image de neuf tranches lorsque le type d'échelle de fond est défini sur Enum.ScaleType.Slice.

Nom de la balise

Couleur de nom de tagUn Color3 pour la barre qui montre avec quel joueur vous interagissez.
Couleur de police de nomUne Color3 pour la ligne fine entre la balise de nom et les boutons d'action.

Formulaire de bouton

Couleur boutonUn Color3 pour la section (Frame) contenant les boutons d'action.
Transparence boutonValeur de transparence (0-1) pour la section bouton.

Bouton

Couleur boutonUn Color3 pour le fond des boutons d'action de l'ACM.
Transparence des boutonsValeur de transparence (0-1) pour la couleur de l'arrière-plan des boutons d'action.
Couleur de pointeur de boutonUn Color3 pour l'état "survoler" des boutons d'action.
Transparence de boutonValeur de transparence (0-1) pour la couleur " survoler" des boutons d'action.
Couleur de police du boutonUne Color3 pour la ligne fine qui sépare chaque bouton d'action.
Image boutonUn ID d'image valide pour le fond des boutons.
Type d'échelle de boutonUn Enum.ScaleType枚 pour l'image de bouton.
BoutonImageSliceCenterUn Rect spécifiant le centre d'une image de neuf tranches lorsque le type d'échelle de bouton est défini sur Enum.ScaleType.Slice.

Texte

PoliceUne valeur d'Enum.Font pour le nom et le texte du bouton.
Couleur texteUn Color3 pour tout le texte dans le ACM.
Échelle de texteUne valeur flottante pour ajuster les tailles de texte par défaut de chaque élément.

Image variante

Quitter la vueUn ID d'image pour le bouton de fermeture ACM.
Image de défilement de gaucheID d'une image pour le bouton de la balançoire « faire défiler à gauche ».
Image de droite de défilementUn ID de ressource valide d'une image pour le bouton « défiler à droite ».

Personnage sélectionné

Indicateur de personnage sélectionnéLa MeshPart qui flotte au-dessus d'une tête de personnage pour indiquer qu'ils sont sélectionnés.

Taille et position

TailleUn UDim2 pour la taille globale de l'ACM.
Taille minimumUn Vector2 spécifiant la taille minimale de l'ACM.
Taille maximaleUn Vector2 spécifiant la taille maximale de l'ACM.
AspectRatioUne valeur flottante spécifiant la largeur et la hauteur relative de l'ACM.
Point d'ancrageLe AnchorPoint de l'ACM.
Position de l'écranUn UDim2 spécifiant la position sur l'écran de l'ACM (la position où il s'adapte lorsqu'il est ouvert).
Position de l'écranUn UDim2 spécifiant la position off-screen de l'ACM (la position où il tweens from/to when opened/閉).

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
})