Das Avatar-Kontextmenü (ACM) erleichtert es Benutzern, miteinander zu interagieren.Wenn der ACM in deiner Erlebnisaktiviert ist, kann ein Benutzer zum Charakter eines anderen Benutzers gehen und auf sie klicken, um ein kleines Menü mit mehreren Standardoptionen zu öffnen.Der Spieler kann eine Anfragesenden, einen privaten Chat beginnen, das Profil des Benutzers anzeigen oder winken.
Nachdem du den ACM in deiner Erlebnisaktiviert hast, kannst du den ACM auf folgende Weise anpassen:
- Programmieren Sie öffnen und schließen den ACM für bestimmte Benutzer.
- Anpassen Sie das ACM-Aussehen, um eine einzigartige Benutzeroberfläche zu erstellen.
Aktiviere das Avatar-Kontextmenü
Das Avatar-Kontextmenü muss mit der Option StarterGui:SetCore() "AvatarContextMenuEnabled" in einem LocalScript aktiviert werden.Die ACM wird am besten in Erlebnissen verwendet, in denen es kein vordefiniertes Verhalten für das Klicken auf andere Benutzer gibt.
Verwenden Sie das folgende Codebeispiel, um den ACM in einem LocalScript zu aktivieren:
-- Ausführen in einem LocalScript, idealerweise innerhalb von "StarterPlayerScripts"local StarterGui = game:GetService("StarterGui")StarterGui:SetCore("AvatarContextMenuEnabled", true)
Wenn Sie feststellen müssen, ob der ACM aktiviert ist, können Sie den folgenden Code verwenden, um einen booleschen Wert über den aktuellen Status des ACM zurückzugeben:
--Gibt eine boolesche Rückgabe zurück, die anzeigt, ob der ACM derzeit aktiviert ist.StarterGui:GetCore(AvatarContextMenuEnabled)
Öffne und schließe die ACM
Sobald aktiviert, können Sie das ACM-Programm programmatisch mit StarterGui öffnen und schließen.
Um die ACM programmatisch zu öffnen, verwende den folgenden Codes:
-- Verwende StarterGui:SetCore, wo targetPlayer ein gültiges ObjektistStarterGui:SetCore("AvatarContextMenuTarget", targetPlayer)
Um die ACM programmatisch zu schließen, verwende den folgenden Codes:
StarterGui:SetCore("AvatarContextMenuTarget", nil)
Menüoptionen
Du kannst hinzufügen und entfernen Aktionen durch Scripting. Standardmäßig hat das Menü die folgenden Optionen:
Menüoption | Beschreibung |
---|---|
Freund | Sendet eine Freundesanfrage an den ausgewählten Benutzer. |
Chatten | Öffnet ein privates Gespräch mit dem ausgewählten Benutzer im Erlebnis-Chat. |
Anzeigen | Öffnet ein Fenster, um das Aussehen des ausgewählten Benutzers zu inspizieren. |
Welle | Startet eine Wellenanimation für den ausgewählten Benutzer. |
Sobald der ACM geöffnet ist, kann der Benutzer durch andere Benutzer scrollen und auf dem Zeichenauswahl-Karussell auswählen.Zeichen werden nach Entfernung zum ausgewählten Zeichen sortiert.Das Menü wird nur aktualisiert, wenn es geöffnet wird, und die Liste der verfügbaren Benutzer wiederholt sich beim Scrollen.

Füge Menüoptionen hinzu
Sobald aktiviert, können Erfahrungsbezogene Aktionen zum ACM hinzugefügt werden.Zum Beispiel kann ein Erlebnis Handelsanfragen, Erweiterungsoptionen oder andere spezielle Interaktionen zulassen.
Das folgende Beispiel zeigt, wie man eine benutzerdefinierte Aktion zum Avatar-Kontextmenü hinzufügt:
local Players = game:GetService("Players")
local StarterGui = game:GetService("StarterGui")
local player = Players.LocalPlayer
-- Verbinde eine Funktion mit einem "BindableEvent"
local bindableEvent = Instance.new("BindableEvent")
local function onCustomACMAction(targetPlayer)
-- An dieser Stelle könnten Sie InvokeServer() auf eine Remotefunktion aufrufen, um den Server über die Auswahl zu informieren
print("ACM event selected by " .. player.Name .. " on " .. targetPlayer.Name)
end
bindableEvent.Event:Connect(onCustomACMAction)
-- Füge die ACM-Option mit SetCore() hinzu, mit "AddAvatarContextMenuOption"
local options = {"Custom ACM Action", bindableEvent}
StarterGui:SetCore("AddAvatarContextMenuOption", options)
Menüoptionen entfernen
Du kannst benutzerdefinierte und die Standardoption "Freund hinzufügen, Chat, anzeigen und winken" vom ACM entfernen, indem du den benutzerdefinierten Aktionsnamen oder die Standardoption Enum.AvatarContextMenuOption enum referenzierst.
Verwende den folgenden Code, um eine Standard- und benutzerdefinierte Menüoption zu entfernen:
-- Entferne die Option "Benutzerdefinierte ACM-Aktion"StarterGui:SetCore("RemoveAvatarContextMenuOption", "Custom ACM Action")-- Entferne die Standardoption "Freund" durch Bezugnahme auf die AvatarContextMenuOption.Friend EnumStarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)
Menüaussehen Aussehen
Um das Aussehen des Avatar-Kontextmenüs zu ändern, rufe StarterGui:SetCore() mit der Option "AvatarContextMenuTheme" auf, die einen Tisch von Parametern und Werten bietet, um das Menüaussehen anzupassen.
Die ACM-Benutzeroberfläche enthält die folgenden Abschnitte:

A. Namensschild: Der Benutzername des Charakters, mit dem interagiert wird.
B. Button-Frame: Enthält alle ACM-Buttons.
C. Schaltflächen: Einzelne Schaltflächen für die Standard- oder benutzerdefinierten ACM-Aktionen.
Aussehensparameter
Dies sind die Anpassungsparameter mit dem ACM:
Hintergrund
Hintergrundfarbe | Ein Color3 für den Gesamthintergrund des ACM (am nützlichsten, wenn kein Hintergrundbild verwendet wird). |
Hintergrundtransparenz | Transparenzwert (0–1) für den Gesamthintergrund des ACM (am nützlichsten, wenn kein Hintergrundbild verwendet wird). |
Hintergrundbild | Eine gültige Asset-ID eines Bildes für den ACM-Hintergrund. |
Hintergrundbildtransparenz | Transparenzwert (0–1) für das Hintergrundbild. |
Hintergrundbildskalierungstyp | Ein Enum.ScaleType Enum für die Skalierung des Hintergrundbildes. |
Hintergrundbildschneidzentrum | Ein Rect Spezifizierung des Zentrums einer neunschichtigen Bild, wenn BackgroundImageScaleType auf Enum.ScaleType.Slice gesetzt ist. |
Namensschild
Namens标签farbe | Ein Color3 für die Leiste, die anzeigt, mit welchem Spieler interagiert wird. |
NameUnderlineFarbe | Ein Color3 für die dünne Linie zwischen dem Namens-Tag und den Aktionstasten. |
Knopfrahmen
Knopfrahmenfarbe | Ein Color3 für den Abschnitt (Frame), der die Aktionstasten enthält. |
Knopfrahmen-Transparenz | Transparenzwert (0–1) für den Button-Frame-Abschnitt. |
Taste
Knopffarbe | Ein Color3 für den Hintergrund der ACM-Aktionstasten. |
KnopfTransparenz | Transparenzwert (0–1) für die Hintergrundfarbe der Aktionstasten. |
Knopf-Hoverfarbe | Ein Color3 für den "Hover-Nachricht"-Zustand der Aktionstasten. |
KnopfHoverTransparenz | Transparenzwert (0–1) für die "Hover-Nachricht"-Farbe der Aktionstasten. |
Knopfunterstrichfarbe | Ein Color3 für die dünne Linie, die jeden Aktionsknopf trennt. |
Knopfbild | Eine gültige Asset-ID eines Bildes für den Hintergrund von Schaltflächen. |
Knopfbildskalierungstyp | Ein Enum.ScaleType Enum für die Skalierung des Knopfbildes. |
Knopfbildschneidzentrum | Ein Rect Spezifizierung des Zentrums einer neunschichtigen Bild, wenn ButtonImageScaleType auf Enum.ScaleType.Slice gesetzt ist. |
Text
Schrift | Ein Enum.Font Enum-Wert für das Namens-Tag und den Knopftext. |
Textfarbe | Ein Color3 für den gesamten Text innerhalb des ACM. |
Textskalierung | Ein Float-Wert, um die Standardtextgrößen jedes Elements zu skalieren. |
Verschiedene Bilder
Verlassen Sie das Menübild | Eine Asset-ID eines Bildes für die ACM-Schaltfläche Schließen. |
ScrollLeftBild | Eine Asset-ID eines Bildes für die Schaltfläche " scroll left" für das Karousel. |
ScrollRightBild | Eine gültige Asset-ID eines Bildes für die Schaltfläche "Rechts scrollen" im Karousel. |
Ausgewählter Charakter
Ausgewählter Zeichenindikator | Die MeshPart, die über dem Kopf eines Charakters schwebt, um anzuzeigen, dass sie ausgewählt sind. |
Größe und Position
Größe | Ein UDim2 für die Gesamtgröße des ACM. |
MinGröße | Ein Vector2 spezifiziert die minimale Größe des ACM. |
Maximale Größe | Ein Vector2 spezifiziert die maximale Größe des ACM. |
Aspektverhältnis | Ein Fließkomma-Wert, der die relative Breite und Höhe des ACM angibt. |
Ankerpunkt | Die AnchorPoint des ACM. |
Auf dem Bildschirm positionieren | Ein UDim2 spezifiziert die Position auf dem Bildschirm des ACM (die Position, in der es sich bei Öffnung tweent). |
Außerbildposition | Ein UDim2 Spezifizierung der Off-Screen-Position des ACM (die Position, von der/zu der er tweent, wenn er geöffnet/geschlossen wird). |
Beispielanpassung
Das folgende Codebeispiel passt das ACM-Thema mit einigen grundlegenden Parametern an:
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})
