Menu kontekstowe awatara (ACM) ułatwia użytkownikom interakcję ze sobą.Gdy ACM jest włączone w twoim doświadczeniu, użytkownik może przejść do postaci innego użytkownika i kliknąć na nią, aby otworzyć małe menu z kilkoma domyślnymi opcjami.Gracz może wysłać prośbao przyjaciela, rozpocząć prywatną rozmowę, zobaczyć profil użytkownika lub falę.
Po włączeniu ACM w swoim doświadczeniu możesz dostosować ACM w następujący sposób:
- Programowo otwórz i zamknij ACM dla określonych 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 za pomocą opcji StarterGui:SetCore() "AvatarContextMenuEnabled" w LocalScript.ACM jest najlepiej używany w doświadczeniach, w których nie ma zdefiniowanego wcześniej zachowania dla kliknięcia na innych użytkowników.
Użyj następującego przykładu kodu, aby włączyć ACM w LocalScript :
-- Uruchom w lokalnym skrypcie, idealnie w ramach "StarterPlayerScripts"local StarterGui = game:GetService("StarterGui")StarterGui:SetCore("AvatarContextMenuEnabled", true)
Jeśli musisz wykryć, czy ACM jest włączone, możesz użyć następującego kodu, aby zwrócić boolean na obecny stan ACM:
--Zwraca booleszne wskazujące, czy ACM jest obecnie włączone.StarterGui:GetCore(AvatarContextMenuEnabled)
Otwórz i zamknij ACM
Po włączeniu możesz otwierać i zamykać program ACM programowo za pomocą StarterGui.
Aby otworzyć ACM programowo, użyj następującego kodu:
-- Użyj StarterGui:SetCore, gdzie targetPlayer jest ważnym obiektem graczaStarterGui:SetCore("AvatarContextMenuTarget", targetPlayer)
Aby zamknąć ACM programowo, użyj następującego kodu:
StarterGui:SetCore("AvatarContextMenuTarget", nil)
Opcje menu
Możesz dodać i usunąć akcje za pomocą skryptowania. Domyślnie menu ma następujące opcje:
Opcja menu | Opis |
---|---|
Przyjaciel | Wysyła zaproszenie o przyjaciela do wybranego użytkownika. |
Czat | Otwiera prywatną rozmowę z wybranym użytkownikiem w czacie w doświadczeniu. |
Zobacz | Otwiera okno, aby sprawdzić wygląd wybranego użytkownika. |
Przepięcie | Inicjuje animację falową dla wybranego użytkownika. |
Gdy ACM jest otwarte, użytkownik może przewijać i wybierać innych użytkowników w karcie wyboru znaków.Postacie są sortowane według odległości do wybranej postaci.Menu aktualizuje się tylko po otwarciu, a lista dostępnych użytkowników powtórzy się podczas przewijania.

Dodaj opcje menu
Po włączeniu można dodać do ACM akcje specyficzne dla doświadczenia.Na przykład doświadczenie może umożliwiać prośby o wymianę, opcje dodawania do grupy lub inne specjalne interakcje.
Poniższy przykład pokazuje, jak dodać niestandardową akcję do menu kontekstu 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żesz wezwać InvokeServer() na zdalną funkcję, aby ostrzec serwer o wyborze
print("ACM event selected by " .. player.Name .. " on " .. targetPlayer.Name)
end
bindableEvent.Event:Connect(onCustomACMAction)
-- Dodaj opcję ACM za pomocą SetCore() z opcją "AddAvatarContextMenuOption"
local options = {"Custom ACM Action", bindableEvent}
StarterGui:SetCore("AddAvatarContextMenuOption", options)
Usuń opcje menu
Możesz usunąć niestandardowe i domyślne opcje Dodaj przyjaciela, Czat, Wyświetl i Falę z ACM, odwołując się do niestandardowej nazwy akcji lub domyślnego Enum.AvatarContextMenuOption enumeru.
Użyj następującego kodu, aby usunąć domyślną i niestandardową opcję menu:
-- Usuń opcję "Niestandardowa akcja ACM"StarterGui:SetCore("RemoveAvatarContextMenuOption", "Custom ACM Action")-- Usuń domyślną opcję "Przyjaciel" odwołując się do AvatarContextMenuOption.Friend EnumStarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)
Dostosuj wygląd menu
Aby zmienić wygląd menu kontekstowego awatara, wezwij StarterGui:SetCore() z opcją "AvatarContextMenuTheme", dostarczając tabelę parametrów i wartości do dostosowania wyglądu menu.
Interfejs użytkownika ACM obejmuje następujące sekcje:

A. Tag nazwy: nazwa użytkownika postaci, z którą jest interakcja.
B. Ramka przycisków: Zawiera wszystkie przyciski ACM.
C. Przyciski: pojedyncze przyciski dla domyślnych lub niestandardowych działań ACM.
Parametry wyglądu
Są to parametry dostosowania z ACM:
Tło
Kolor tła | A Color3 dla ogólnego tła ACM (najbardziej przydatne, gdy nie używa się obrazu tła). |
Przezroczystość tła | Wartość przejrzystości (0–1) dla ogólnego tła ACM (najbardziej przydatna, gdy nie używa się obrazu tła). |
Obraz tła | Prawidłowy identyfikator zasobu obrazu dla tła ACM. |
Przezroczystość obrazu tła | Wartość przejrzystości (0–1) dla tła obrazu. |
Typ skali obrazu tła | A Enum.ScaleType enum dla skalowania obrazu tła. |
Centrum przecięcia obrazu tła | A Rect określający centrum obrazu dziewięciu plastrów, gdy BackgroundImageScaleType jest ustawiony na Enum.ScaleType.Slice. |
Tag nazwy
Kolor etykiety nazwy | A Color3 dla paska pokazującego, z którym graczem jest interakcja. |
Kolor podświetlenia nazwy | A Color3 dla cienkiej linii między tagiem nazwy a przyciskami akcji. |
Rama przycisków
Kolor ramki przycisku | A Color3 dla sekcji (ramki) zawierającej przyciski akcji. |
Przezroczystość ButtonFrame | Wartość przejrzystości (0–1) dla sekcji ramy przycisku. |
Przycisk
Kolor przycisku | A Color3 dla tła przycisków akcji ACM. |
Przezroczystość przycisku | Wartość przejrzystości (0–1) dla tła kolorów przycisków akcji. |
Kolor przewijania przycisku | A Color3 dla stanu "przytrzymywania" przycisków akcji. |
Przezroczystość przycisku Hover | Wartość przejrzystości (0–1) dla koloru "hover" przycisków akcji. |
Kolor podświetlenia przycisku | A Color3 dla cienkiej linii, która oddziela każdy przycisk akcji. |
Obraz przycisku | Prawidłowy identyfikator zasobu obrazu na tle przycisków. |
Typ skali obrazu przycisku | A Enum.ScaleType enum dla skalowania obrazu przycisku. |
Przyciskowy obraz środka centrum | A Rect określający centrum obrazu dziewięciu plastrów, gdy ButtonImageScaleType jest ustawiony na Enum.ScaleType.Slice. |
Tekst
Czcionka | Wartość Enum.Font listy wartości dla etykiety nazwy i tekstu przycisku. |
Kolor tekstu | A Color3 dla całego tekstu w ACM. |
Skala tekstu | Wartość przepływowa do skalowania domyślnych rozmiarów tekstu każdego elementu. |
Różne obrazy
Opuść menu obrazu | ID zasobu obrazu dla przycisku zamknięcia ACM. |
Przewiń w lewo obraz | ID zasobu obrazu dla przycisku "przewiń w lewo" w karuzeli. |
Przewiń prawe obraz | Prawidłowy identyfikator zasobu obrazu dla przycisku "przewiń w prawo" w karuzeli. |
Wybrana postać
Wybrany wskaźnik postaci | The MeshPart które pływają nad głową znaku, aby wskazać, że są wybrane. |
Rozmiar i pozycja
Rozmiar | A UDim2 dla ogólnego rozmiaru ACM. |
Minimalny rozmiar | A Vector2 określający minimalny rozmiar ACM. |
Maksymalny rozmiar | A Vector2 określający maksymalny rozmiar ACM. |
Proporcja aspektu | Wartość zmiennej określająca względną szerokość i wysokość ACM. |
Punkt zakotwiczenia | The AnchorPoint z ACM. |
Pozycja na ekranie | A UDim2 określający pozycję na ekranie ACM (pozycję, w której nastolatek się odzywa, gdy się otwiera). |
Pozycja poza ekranem | A UDim2 określający pozycję na ekranie ACM (pozycję, z której nastolatki wychodzą/do której wchodzą po otwarciu/zamknięciu). |
Przykład dostosowania
Poniższy przykład kodu dostosowuje temat 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})
