Das Avatar-Kontextmenü (ACM) macht es einfacher für Benutzer, miteinander zu interagieren. Wenn das ACM in deiner Erlebnisaktiviert ist, kann ein Benutzer bis zu einem anderen Benutzer gehen und auf ihn klicken, um ein kleines Menü mit mehreren Standardoptionen zu öffnen. Der Spieler kann eine Anfragesenden, einen privaten Chat beginnen oder das Profilanzeigen oder auf Welle.
Nachdem du den ACM in deiner Erlebnisaktiviert hast, kannst du den ACM wie folgt anpassen:
- Programmieren Sie öffnen und schließen Sie die ACM für bestimmte Benutzer.
- Hinzufügen benutzerdefinierte Optionen und entfernen bestehende Optionen zum ACM.
- Anpassen Sie die ACM-Erscheinung, um eine einzigartige Benutzeroberfläche zu erstellen.
Aktivierung des Avatar-Kontextmenüs
Das Avatar-Kontextmenü muss mit der Option StarterGui:SetCore() aktiviert werden, die in einem LocalScript den ACM am besten verwendet wird.
Verwenden Sie das folgende Codebeispiel, um die ACM in einem LocalScript zu aktivieren:
-- Lauf in einem lokalen Skript, idealerweise innerhalb von "StarterPlayerScripts"local StarterGui = game:GetService("StarterGui")StarterGui:SetCore("AvatarContextMenuEnabled", true)
Wenn Sie überprüfen müssen, ob die ACM aktiviert ist, können Sie den folgenden Code verwenden, um eineBoolean auf dem aktuellen Status der ACM zurückzugeben:
--– gibt zurück, ob die ACM aktuell aktiviert ist.StarterGui:GetCore(AvatarContextMenuEnabled)
Eröffnen und Schließen des ACM
Sobald aktiviert, kannst du das ACM-Programm mit StarterGui programmieren öffnen und schließen.
Um das ACM programmmatisch zu öffnen, verwenden Sie den folgenden Codes:
-- Verwenden Sie StarterGui:SetCore, wenn targetPlayer ein gültiges ObjektistStarterGui:SetCore("AvatarContextMenuTarget", targetPlayer)
Um das ACM programmierungsgemäß zu schließen, verwenden Sie den folgenden Codes:
StarterGui:SetCore("AvatarContextMenuTarget", nil)
Menüoptionen
Du kannst Hinzufügen und Entfernen Aktionen durch Scriptinghinzufügen. Standardmäßig hat das Menü die folgenden Optionen:
Menüoption | Beschreibung |
---|---|
Freund | Sendet eine Freundesanfrage an den ausgewählten Benutzer. |
Chatten | Öffnet eine private Konversation mit dem ausgewählten Benutzer im In-Experience-Chat. |
Anzeigen | Öffnet ein Fenster, um die Aussehen des ausgewählten Benutzers zu inspizieren. |
Welle | Startet eine Welle-Animation für den ausgewählten Benutzer. |
Sobald der ACM geöffnet ist, kann der Benutzer die Charaktere auswählen und andere Benutzer auf der Charakterauswahl-Karussell. Die Charaktere werden basierend auf der Entfernung zum ausgewählten Charakter sortiert. Das Menü wird nur aktualisiert, wenn es geöffnet ist, und die Liste der verfügbaren Benutzer wird beim Scrollen wiederholt.
Menüoptionen hinzufügen
Nach dem Aktivieren können Erlebnisse spezifische Aktionen dem ACM hinzugefügt werden. Zum Beispiel kann ein Erlebnis Anfragen für den Handel, Add-to-Party-Optionen oder andere Spezialinteraktionen ermöglichen.
Das folgende Beispiel zeigt, wie Sie einen benutzerdefinierten Aktion hinzufügen zum Avatar Kontext Menü:
local Players = game:GetService("Players")
local StarterGui = game:GetService("StarterGui")
local player = Players.LocalPlayer
-- Verbinden Sie eine Funktion mit einem "Bindbaren Ereignis"
local bindableEvent = Instance.new("BindableEvent")
local function onCustomACMAction(targetPlayer)
-- An diesem Punkt könnte Sie InvokeServer() auf eine RemoteFunction aufrufen, um den Server der Auswahl zu alarmieren
print("ACM event selected by " .. player.Name .. " on " .. targetPlayer.Name)
end
bindableEvent.Event:Connect(onCustomACMAction)
-- Füge die ACM-Option mit SetCore() mit "AddAvatarContextMenuOption" hinzu
local options = {"Custom ACM Action", bindableEvent}
StarterGui:SetCore("AddAvatarContextMenuOption", options)
Menüoptionen entfernen
Du kannst benutzerdefinierte und Standard-Freund, Chat, Ansicht und Welle-Optionen vom ACM entfernen, indem du auf den benutzerdefinierten Aktionsnamen oder das Standard- Enum.AvatarContextMenuOption -Ensemble verweist.
Verwenden Sie den folgenden Code, um eine Standard- und Benutzerdefinierungsmenüoption zu entfernen:
-- Entferne die Option "Benutzerdefinierte Aktionen"StarterGui:SetCore("RemoveAvatarContextMenuOption", "Custom ACM Action")-- Entferne die Standardoption "Freund" durch Verweis auf die AvatarContextMenuOption.Friend EnumStarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)
Menü-Erscheinung anpassen
Um das Aussehen des Avatar-Kontextmenüs zu ändern, rufen Sie StarterGui:SetCore() mit der Option "AvatarContextMenuTheme" auf, mit der Sie eine Tabelle von Parametern und Werten bereitstellen, um die Menü-Ansicht anzupassen.
Die Benutzeroberfläche des ACM enthält die folgenden Abschnitte:
A. Namens-Tag: Der Nutzername des Charakters, mit dem interagiert wird.
B. Button-Rahmen: Enthält alle ACM-Schaltflächen.
C. Buttons: Einzelne Schaltflächen für Standard- oder Benutzerdefinierte Aktionen.
Ausse参数
Dies sind die Anpassungsparameter mit dem ACM:
Hintergrund
Hintergrundfarbe | Ein Color3 für den Gesamten Hintergrund des ACM (am nützlichsten, wenn Sie keine Hintergrundbild verwenden). |
Hintergrund-Transparenz | Transparenzwert (0–1) für den Gesamten Hintergrund der ACM (nützlichste, wenn keine Hintergrundbild verwendet wird). |
Hintergrundbild | Eine gültige Asset-ID eines Bildes für den ACM-Hintergrund. |
HintergrundbildTransparenz | Transparenzwert (0–1) für das Hintergrundbild. |
Hintergrundbild-Skalierungstyp | Ein Enum.ScaleType Enumer für die Hintergrundbildskalierung. |
Hintergrundbild-Schlitz | Ein Rect Spezifizieren Sie die Mitte eines neun-Slice-Bildes, wenn BackgroundImageScaleType auf Enum.ScaleType.Slice eingestellt ist. |
Namensschild
Namensschildfarbe | Ein Color3 für die Leiste, die zeigt, mit welchem Spieler interagiert wird. |
NameUnderlineFarbe | Eine Color3 für die dünne Linie zwischen dem Namens-Tag und den Aktions-Buttons. |
Button-Rahmen
Button-Farbe | Ein Color3 für den Abschnitt (Rahmen), der die Aktionsschaltflächen enthält. |
ButtonFrameTransparenz | Transparenzwert (0–1) für die Schaltflächen-Rastereinheit. |
Taste
ButtonFarbe | Ein Color3 für die Hintergrundfarbe der Aktionstasten der ACM. |
ButtonTransparenz | Transparenzwert (0–1) für die Hintergrundfarbe der Aktionsschaltflächen. |
ButtonHoverFarbe | Ein Color3 für den " Hover-Nachricht"-Status der Aktions按钮. |
ButtonHoverTransparenz | Transparenzwert (0–1) für die " Hover-Nachricht"-Farbe der Schaltflächen. |
Button-Umrissfarbe | Ein Color3 für die dünne Linie, die jeden Aktions-Button trennt. |
Button-Bild | Eine gültige Asset-ID eines Bildes für die Hintergrundfarbe der Schaltflächen. |
Button-Bild-Skalierungstyp | Ein Enum.ScaleType Enumer für die Bildskalierung von Schaltflächen. |
ButtonImageSliceZentrum | Ein Rect Spezifizieren Sie die Mitte eines neun-Slice-Bildes, wenn ButtonImageScaleType auf Enum.ScaleType.Slice eingestellt ist. |
Text
Font | Ein Enum.Font Enumerie-Wert für den Namens-Tag und den Button-Text. |
TextFarbe | Ein Color3 für den gesamten Text innerhalb des ACM. |
Text skalieren | Ein schwimmender Wert, mit dem die Standard-Textgrößen jedes Elements skaliert werden. |
Verschiedene Bilder
Menübild verlassen | Eine Asset-ID eines Bildes für die ACM-Schaltfläche "Schließen". |
Scroll左图像 | Eine Asset-ID eines Bildes für die Karussell-Schaltfläche "Links scrollen". |
Rechts scrollen | Eine gültige Asset-ID eines Bildes für die Karussell-Rechts-Schaltfläche. |
Ausgewählter Charakter
Ausgewählte Zeichen-Indikator | Das MeshPart, das über dem Kopf eines Charakters schwebt, um anzuzeigen, dass sie ausgewählt sind. |
Größe und Position
Größe | Ein UDim2 für die Gesamtwohnunggröße des ACM. |
MinGröße | Ein Vector2 Spezifikation der minimalen Größe des ACM. |
MaxGröße | Ein Vector2 Spezifikation der maximalen Größe des ACM. |
Aspektverhältnis | Ein schwimmender Wert, der die relative Breite und Höhe des ACM angeben. |
Ankerpunkt | Der AnchorPoint der ACM. |
Auf-Display-Position | Ein UDim2 Spezifiziert die Position auf dem Bildschirm des ACM (die Position, in der er sich zu öffnen anpasst). |
OffScreenPosition | Ein UDim2 Spezifikation der Off-Screen-Position des ACM (die Position, in der er vom/zu wenn er geschlossen wird). |
Beispielanpassung
Das folgende Codebeispiel personalisiert das ACM-Thema mit einigen grundlegenden Parametern:
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})