Kontextmenü für Avatar

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

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:

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 Objektist
StarterGui: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üoptionBeschreibung
FreundSendet 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.
WelleStartet 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 Enum
StarterGui: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

HintergrundfarbeEin Color3 für den Gesamthintergrund des ACM (am nützlichsten, wenn kein Hintergrundbild verwendet wird).
HintergrundtransparenzTransparenzwert (0–1) für den Gesamthintergrund des ACM (am nützlichsten, wenn kein Hintergrundbild verwendet wird).
HintergrundbildEine gültige Asset-ID eines Bildes für den ACM-Hintergrund.
HintergrundbildtransparenzTransparenzwert (0–1) für das Hintergrundbild.
HintergrundbildskalierungstypEin Enum.ScaleType Enum für die Skalierung des Hintergrundbildes.
HintergrundbildschneidzentrumEin Rect Spezifizierung des Zentrums einer neunschichtigen Bild, wenn BackgroundImageScaleType auf Enum.ScaleType.Slice gesetzt ist.

Namensschild

Namens标签farbeEin Color3 für die Leiste, die anzeigt, mit welchem Spieler interagiert wird.
NameUnderlineFarbeEin Color3 für die dünne Linie zwischen dem Namens-Tag und den Aktionstasten.

Knopfrahmen

KnopfrahmenfarbeEin Color3 für den Abschnitt (Frame), der die Aktionstasten enthält.
Knopfrahmen-TransparenzTransparenzwert (0–1) für den Button-Frame-Abschnitt.

Taste

KnopffarbeEin Color3 für den Hintergrund der ACM-Aktionstasten.
KnopfTransparenzTransparenzwert (0–1) für die Hintergrundfarbe der Aktionstasten.
Knopf-HoverfarbeEin Color3 für den "Hover-Nachricht"-Zustand der Aktionstasten.
KnopfHoverTransparenzTransparenzwert (0–1) für die "Hover-Nachricht"-Farbe der Aktionstasten.
KnopfunterstrichfarbeEin Color3 für die dünne Linie, die jeden Aktionsknopf trennt.
KnopfbildEine gültige Asset-ID eines Bildes für den Hintergrund von Schaltflächen.
KnopfbildskalierungstypEin Enum.ScaleType Enum für die Skalierung des Knopfbildes.
KnopfbildschneidzentrumEin Rect Spezifizierung des Zentrums einer neunschichtigen Bild, wenn ButtonImageScaleType auf Enum.ScaleType.Slice gesetzt ist.

Text

SchriftEin Enum.Font Enum-Wert für das Namens-Tag und den Knopftext.
TextfarbeEin Color3 für den gesamten Text innerhalb des ACM.
TextskalierungEin Float-Wert, um die Standardtextgrößen jedes Elements zu skalieren.

Verschiedene Bilder

Verlassen Sie das MenübildEine Asset-ID eines Bildes für die ACM-Schaltfläche Schließen.
ScrollLeftBildEine Asset-ID eines Bildes für die Schaltfläche " scroll left" für das Karousel.
ScrollRightBildEine gültige Asset-ID eines Bildes für die Schaltfläche "Rechts scrollen" im Karousel.

Ausgewählter Charakter

Ausgewählter ZeichenindikatorDie MeshPart, die über dem Kopf eines Charakters schwebt, um anzuzeigen, dass sie ausgewählt sind.

Größe und Position

GrößeEin UDim2 für die Gesamtgröße des ACM.
MinGrößeEin Vector2 spezifiziert die minimale Größe des ACM.
Maximale GrößeEin Vector2 spezifiziert die maximale Größe des ACM.
AspektverhältnisEin Fließkomma-Wert, der die relative Breite und Höhe des ACM angibt.
AnkerpunktDie AnchorPoint des ACM.
Auf dem Bildschirm positionierenEin UDim2 spezifiziert die Position auf dem Bildschirm des ACM (die Position, in der es sich bei Öffnung tweent).
AußerbildpositionEin 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
})