Menu kontekstowy awatara

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

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:

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 Gracza
StarterGui: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 menuOpis
ZnajomyWysyła zaproszenie do znajomych do wybranego użytkownika.
CzatOtwiera prywatną rozmowę z wybranym użytkownikiem w czacie gry.
WyświetlOtwiera 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.Friend
StarterGui: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

BackgroundColorA Color3 dla ogólnego tła ACM (najbardziej użyteczne, gdy nie używa się obrazu tła).
BackgroundTransparencyWartość przezroczystości (0–1) dla ogólnego tła ACM (najbardziej użyteczne, gdy nie używa się obrazu tła).
BackgroundImagePrawidłowy identyfikator zasobu obrazu dla tła ACM.
BackgroundImageTransparencyWartość przezroczystości (0–1) dla obrazu tła.
BackgroundImageScaleTypeEnum Enum.ScaleType dla skalowania obrazu tła.
BackgroundImageSliceCenterDatatype.Rect określające środek obrazu dzielonego na dziewięć, gdy BackgroundImageScaleType jest ustawione na Enum.ScaleType.Slice.

Etykieta imienia

NameTagColorA Color3 dla paska pokazującego, z którym graczem się wchodzi w interakcje.
NameUnderlineColorA Color3 dla cienkiej linii między etykietą imienia a przyciskami akcji.

Ramka przycisku

ButtonFrameColorA Color3 dla sekcji (ramki) zawierającej przyciski akcji.
ButtonFrameTransparency Wartość przezroczystości (0–1) dla sekcji ramki przycisków.

Przycisk

ButtonColorA Color3 dla tła przycisków akcji ACM.
ButtonTransparencyWartość przezroczystości (0–1) dla koloru tła przycisków akcji.
ButtonHoverColorA Color3 dla stanu "hover" przycisków akcji.
ButtonHoverTransparencyWartość przezroczystości (0–1) dla koloru "hover" przycisków akcji.
ButtonUnderlineColorA Color3 dla cienkiej linii oddzielającej każdy przycisk akcji.
ButtonImagePrawidłowy identyfikator zasobu obrazu dla tła przycisków.
ButtonImageScaleTypeEnum Enum.ScaleType dla skalowania obrazu przycisku.
ButtonImageSliceCenterDatatype.Rect określające środek obrazu dzielonego na dziewięć, gdy ButtonImageScaleType jest ustawione na Enum.ScaleType.Slice.

Tekst

FontWartość enum Enum.Font dla etykiety imienia i tekstu przycisków.
TextColorA Color3 dla całego tekstu w ACM.
TextScaleWartość float do skalowania domyślnych rozmiarów tekstu każdego elementu.

Różne obrazy

LeaveMenuImageIdentyfikator zasobu obrazu dla przycisku zamykania ACM.
ScrollLeftImageIdentyfikator zasobu obrazu dla przycisku karuzeli "przewiń w lewo".
ScrollRightImagePrawidłowy identyfikator zasobu obrazu dla przycisku karuzeli "przewiń w prawo".

Wybrana postać

SelectedCharacterIndicatorClass.MeshPart, które unosi się nad głową postaci, aby wskazać, że została wybrana.

Rozmiar i położenie

SizeA UDim2 dla ogólnego rozmiaru ACM.
MinSizeA Vector2 określające minimalny rozmiar ACM.
MaxSizeA Vector2 określające maksymalny rozmiar ACM.
AspectRatioWartość float określająca proporcje szerokości i wysokości ACM.
AnchorPointClass.GuiObject.AnchorPoint|AnchorPoint ACM.
OnScreenPositionA UDim2 określające położenie ACM na ekranie (położenie, do którego przemieszcza się po otwarciu).
OffScreenPositionA 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
})
©2026 Roblox Corporation. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.