Menu kontekstowe awatara (ACM) ułatwia użytkownikom wzajemne interakcje. Kiedy ACM jest włączony w twojej grze, użytkownik może podejść do postaci innego użytkownika i kliknąć na nią, aby otworzyć małe menu z kilkoma domyślnymi opcjami. Gracz może wysłać zaproszenie do znajomych, rozpocząć prywatną rozmowę, wyświetlić profil użytkownika lub pomachać.
Po włączeniu ACM w swojej grze, możesz dostosować ACM w następujący sposób:
- Programowo otwieraj i zamykaj ACM dla konkretnych użytkowników.
- Dostosuj wygląd ACM, aby stworzyć unikalny interfejs użytkownika.
Włącz menu kontekstowe awatara
Menu kontekstowe awatara musi być włączone przy użyciu opcji StarterGui:SetCore() "AvatarContextMenuEnabled" w LocalScript. ACM najlepiej stosować w grach, gdzie nie ma zdefiniowanego zachowania dla klikania na innych użytkowników.
Użyj poniższego przykładu kodu, aby włączyć ACM w LocalScript:
-- Uruchom w LocalScript, najlepiej w "StarterPlayerScripts"local StarterGui = game:GetService("StarterGui")StarterGui:SetCore("AvatarContextMenuEnabled", true)
Jeśli musisz wykryć, czy ACM jest włączone, możesz użyć poniższego kodu, aby zwrócić wartość boolean wskazującą obecny status ACM:
---Zwraca wartość boolean wskazującą, czy ACM jest obecnie włączone.StarterGui:GetCore(AvatarContextMenuEnabled)
Otwórz i zamknij ACM
Po włączeniu możesz programowo otworzyć i zamknąć ACM z użyciem StarterGui.
Aby programowo otworzyć ACM, użyj poniższego kodu:
-- Użyj StarterGui:SetCore, gdzie targetPlayer jest prawidłowym obiektem GraczaStarterGui:SetCore("AvatarContextMenuTarget", targetPlayer)
Aby programowo zamknąć ACM, użyj poniższego kodu:
StarterGui:SetCore("AvatarContextMenuTarget", nil)
Opcje menu
Możesz dodawać i usuwać akcje poprzez skrypty. Domyślnie menu ma następujące opcje:
| Opcja menu | Opis |
|---|---|
| Znajomy | Wysyła zaproszenie do znajomych do wybranego użytkownika. |
| Czat | Otwiera prywatną rozmowę z wybranym użytkownikiem w czacie gry. |
| Wyświetl | Otwiera okno do inspekcji wyglądu wybranego użytkownika. |
| Pomachać | Rozpoczyna animację machania do wybranego użytkownika. |
Gdy ACM jest otwarte, użytkownik może przewijać i wybierać innych użytkowników w karuzeli wyboru postaci. Postacie są sortowane na podstawie odległości do wybranej postaci. Menu aktualizuje się tylko przy otwarciu, a lista dostępnych użytkowników będzie się powtarzać podczas przewijania.

Dodaj opcje menu
Gdy ACM jest włączone, można dodać specyficzne dla gry działania do ACM. Na przykład, gra może pozwalać na żądania handlowe, opcje dodawania do grupy, lub inne specjalne interakcje.
Poniższy przykład pokazuje, jak dodać niestandardową akcję do menu kontekstowego awatara:
local Players = game:GetService("Players")
local StarterGui = game:GetService("StarterGui")
local player = Players.LocalPlayer
-- Połącz funkcję z "BindableEvent"
local bindableEvent = Instance.new("BindableEvent")
local function onCustomACMAction(targetPlayer)
-- W tym momencie można wywołać InvokeServer() w RemoteFunction, aby powiadomić serwer o wyborze
print("Wybrano zdarzenie ACM przez " .. player.Name .. " na " .. targetPlayer.Name)
end
bindableEvent.Event:Connect(onCustomACMAction)
-- Dodaj opcję ACM używając SetCore() z "AddAvatarContextMenuOption"
local options = {"Niestandardowa akcja ACM", bindableEvent}
StarterGui:SetCore("AddAvatarContextMenuOption", options)
Usuń opcje menu
Możesz usunąć niestandardowe oraz domyślne opcje Dodaj znajomego, Czat, Wyświetl i Pomachać z ACM, odwołując się do nazwy akcji niestandardowej lub domyślnej enum Enum.AvatarContextMenuOption.
Użyj poniższego kodu, aby usunąć domyślną i niestandardową opcję menu:
-- Usuń opcję "Niestandardowa akcja ACM"StarterGui:SetCore("RemoveAvatarContextMenuOption", "Niestandardowa akcja ACM")-- Usuń domyślną opcję "Znajomy", odwołując się do Enum.AvatarContextMenuOption.FriendStarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)
Dostosuj wygląd menu
Aby zmienić wygląd menu kontekstowego awatara, wywołaj StarterGui:SetCore() z opcją "AvatarContextMenuTheme", podając tabelę parametrów i wartości, aby dostosować wygląd menu.
Interfejs użytkownika ACM zawiera następujące sekcje:

A. Etykieta imienia: Nazwa użytkownika postaci, z którą trwa interakcja.
B. Ramka przycisku: Zawiera wszystkie przyciski ACM.
C. Przycisk: Pojedyncze przyciski dla domyślnych lub niestandardowych akcji ACM.
Parametry wyglądu
Oto parametry dostosowania w ACM:
Tło
| BackgroundColor | A Color3 dla ogólnego tła ACM (najbardziej użyteczne, gdy nie używa się obrazu tła). |
| BackgroundTransparency | Wartość przezroczystości (0–1) dla ogólnego tła ACM (najbardziej użyteczne, gdy nie używa się obrazu tła). |
| BackgroundImage | Prawidłowy identyfikator zasobu obrazu dla tła ACM. |
| BackgroundImageTransparency | Wartość przezroczystości (0–1) dla obrazu tła. |
| BackgroundImageScaleType | Enum Enum.ScaleType dla skalowania obrazu tła. |
| BackgroundImageSliceCenter | Datatype.Rect określające środek obrazu dzielonego na dziewięć, gdy BackgroundImageScaleType jest ustawione na Enum.ScaleType.Slice. |
Etykieta imienia
| NameTagColor | A Color3 dla paska pokazującego, z którym graczem się wchodzi w interakcje. |
| NameUnderlineColor | A Color3 dla cienkiej linii między etykietą imienia a przyciskami akcji. |
Ramka przycisku
| ButtonFrameColor | A Color3 dla sekcji (ramki) zawierającej przyciski akcji. |
| ButtonFrameTransparency | Wartość przezroczystości (0–1) dla sekcji ramki przycisków. |
Przycisk
| ButtonColor | A Color3 dla tła przycisków akcji ACM. |
| ButtonTransparency | Wartość przezroczystości (0–1) dla koloru tła przycisków akcji. |
| ButtonHoverColor | A Color3 dla stanu "hover" przycisków akcji. |
| ButtonHoverTransparency | Wartość przezroczystości (0–1) dla koloru "hover" przycisków akcji. |
| ButtonUnderlineColor | A Color3 dla cienkiej linii oddzielającej każdy przycisk akcji. |
| ButtonImage | Prawidłowy identyfikator zasobu obrazu dla tła przycisków. |
| ButtonImageScaleType | Enum Enum.ScaleType dla skalowania obrazu przycisku. |
| ButtonImageSliceCenter | Datatype.Rect określające środek obrazu dzielonego na dziewięć, gdy ButtonImageScaleType jest ustawione na Enum.ScaleType.Slice. |
Tekst
| Font | Wartość enum Enum.Font dla etykiety imienia i tekstu przycisków. |
| TextColor | A Color3 dla całego tekstu w ACM. |
| TextScale | Wartość float do skalowania domyślnych rozmiarów tekstu każdego elementu. |
Różne obrazy
| LeaveMenuImage | Identyfikator zasobu obrazu dla przycisku zamykania ACM. |
| ScrollLeftImage | Identyfikator zasobu obrazu dla przycisku karuzeli "przewiń w lewo". |
| ScrollRightImage | Prawidłowy identyfikator zasobu obrazu dla przycisku karuzeli "przewiń w prawo". |
Wybrana postać
| SelectedCharacterIndicator | Class.MeshPart, które unosi się nad głową postaci, aby wskazać, że została wybrana. |
Rozmiar i położenie
| Size | A UDim2 dla ogólnego rozmiaru ACM. |
| MinSize | A Vector2 określające minimalny rozmiar ACM. |
| MaxSize | A Vector2 określające maksymalny rozmiar ACM. |
| AspectRatio | Wartość float określająca proporcje szerokości i wysokości ACM. |
| AnchorPoint | Class.GuiObject.AnchorPoint|AnchorPoint ACM. |
| OnScreenPosition | A UDim2 określające położenie ACM na ekranie (położenie, do którego przemieszcza się po otwarciu). |
| OffScreenPosition | A UDim2 określające położenie ACM poza ekranem (położenie, z którego przemieszcza się przy otwieraniu/zamykaniu). |
Przykład dostosowania
Poniższy przykład kodu dostosowuje motyw ACM za pomocą kilku podstawowych parametrów:
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})
