Menu Kontekstowe Avatarów (ACM) ułatwia użytkownikom wchodzenie w interakcję z sobą. Gdy włączone jest ACM w twoim doświadczeniu, użytkownik może przejść do innego użytkownika's charakteru i kliknąć na niego, aby otworzyć małe menu z kilku domyślnymi opcjami. Gracz może wysłać prośbę o prośba o dodanie do znajomych, rozpocząć pry
Po włączeniu aktywowanego ACM w swoim doświadczeniu, 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 do tworzenia unikalnej interfejsu użytkownika.
Włączanie Menu Kontekstu Awatara
Kontekstowy Menu Rozmiarów Aвата musi być włączony używając opcji StarterGui:SetCore() "AvatarContextMenuEnabled" w LocalScript . The ACM jest najlepiej używany w doświadczeniach, w których nie ma wcześniej zdefiniowanego zachowania dla kliknięcia na innych użytkowników.
Użyj poniższego przykładu kodu, aby włączyć ACM w LocalScript :
-- Biegnąć w lokalnym skrypcie, idealnie w "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ć prawdziwy lub fałszywy status ACM:
--Zwraca prawdziwy, jeśli aktywacja jest włączona.StarterGui:GetCore(AvatarContextMenuEnabled)
Otwieranie i Zamknięcie ACM
Po włączeniu możesz otworzyć i zamknąć program ACM programowo za pomocą StarterGui.
Aby otworzyć programowo ACM, użyj kodu następującego:
-- Użyj StarterGui:SetCore, gdzie targetPlayer jest ważnym obiektem graczaStarterGui:SetCore("AvatarContextMenuTarget", targetPlayer)
Aby zaprogramować zamknięcie ACM, użyj kodu następującego:
StarterGui:SetCore("AvatarContextMenuTarget", nil)
Opcje menu
Możesz dodawać i usuwać akcje poprzez skryptowanie. Domyślnie menu ma następujące opcje:
Opcja menu | Opis |
---|---|
Przyjaciel | Wysyłuje prośbę o przyjaciela do wybranego użytkownika. |
Czat | Otwiera prywatną rozmowę z wybranym użytkownikiem w czacie w doświadczeniu. |
Zobacz | Otwiera okno do sprawdzenia wyglądu wybranego użytkownika. |
Machanie | Początkuje animację fal dla wybranego użytkownika. |
Gdy ACM jest otwarty, użytkownik może przewinąć się i wybrać innych użytkowników na charakterze selekcji postaci. Używane są sortowane według odległości od wybranego postaci. Menu jest aktualizowane tylko po otwarciu i lista dostępnych użytkowników zostanie ponownie zaktualizowana po przewinęciu.
Dodawanie opcji menu
Po włączeniu funkcji, które są związane z doświadczeniem, można dodać je do ACM. Na przykład, doświadczenie może umożliwić wnioski o handel, opcje dodawania do grupy lub inne specjalne interakcje.
Poniższy przykład pokazuje, jak dodać niestandardową akcję do Menu Kontekstu Avatara:
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 wejść do InvokeServer() na RemoteFunction, aby poinformować serwer o wyboru
print("ACM event selected by " .. player.Name .. " on " .. targetPlayer.Name)
end
bindableEvent.Event:Connect(onCustomACMAction)
-- Dodaj opcję ACM używając SetCore() z "AddAvatarContextMenuOption"
local options = {"Custom ACM Action", bindableEvent}
StarterGui:SetCore("AddAvatarContextMenuOption", options)
Usuwanie Opcji Menu
Możesz usunąć opcje dodawania przyjaciół, Czat, widoku i fale z ACM poprzez odniesienie się do ustawionej nazwy działania lub domyślnego Enum.AvatarContextMenuOption menu.
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" poprzez odniesienie się do menu kontekstu AvatarContextMenuFriendStarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)
Personalizacja wyglądu 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 zawiera następujące sekcje:
A. Tag imienia: Imię użytkownika z którego interakcja zostanie wykonana.
B. Rama przycisków: Zawiera wszystkie przyciski ACM.
C. Przyciski: Pojedyncze przyciski dla akcji domyślnych lub niestandardowych ACM.
Parametry wyglądu
Są to parametry personalizacji z ACM:
Tło
Kolor tła | A Color3 dla ogólnego tła ACM (najbardziej użyteczne, gdy nie używa się obrazu tła). |
Przezroczystość tła | Wartość przejrzystości (0-1) dla ogólnego tła ACM (najbardziej użyteczne, gdy nie używa się obrazu tła). |
Obraz tła | Poprawny identyfikator zasobu dla obrazu dla tła ACM. |
Przezroczystość Tła | Wartość przejrzystości (0-1) dla obrazu tła. |
Typ skalowania tła | A Enum.ScaleType enum dla skalowania obrazu tła. |
Centrum Obrazu Tła | A Rect określający środek dziewięciu-rzędowego obrazu, gdy BackgroundImageScaleType jest ustawiony na Enum.ScaleType.Slice . |
Tag imienia
Kolor Tagu Imienia | A Color3 dla okienka pokazującego z kim gracz interaguje. |
Kolor pod linii imienia | A Color3 dla cienkiej linii między tagiem imienia a przyciskami działania. |
Rama przycisku
Kolor ramy przycisku | A Color3 dla sekcji (ramy) zawierające przyciski akcji. |
Przezroczystość przycisku | Wartość przejrzystości (0-1) dla sekcji przycisku. |
Przycisk
KolorPrzycisku | A Color3 dla tła przycisków akcji ACM. |
PrzezroczystośćPrzycisku | Wartość przejrzystości (0-1) dla koloru tła przycisków akcji. |
KolorPrzytrzymywaniaPrzycisku | A Color3 dla stanu „ hover” przycisków akcji. |
Przezroczystość przycisku | 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. |
Zdjęcie przycisku | Poprawny identyfikator zasobu dla tła przycisków. |
Typ skalowania przycisku | A Enum.ScaleType enum dla skalowania obrazu przyciskowego. |
Centrum Obrazu Przyciskowego | A Rect określający środek dziewięciu-rzędowego obrazu, gdy ButtonImageScaleType jest ustawiony na Enum.ScaleType.Slice . |
Tekst
Czcionka | A Enum.Font wartość dla tagu imienia i tekstu przycisku. |
Kolor tekstu | A Color3 dla wszystkiego tekstu w ACM. |
Skala tekstowa | Wartość float do skalowania domyślnych rozmiarów tekstu każdego elementu. |
Różne obrazy
Pokaż menu | ID zasobu dla przycisku zamknięcia dla ACM. |
Przesuń lewy obraz | ID obrazu dla przycisku "zatrzymaj lewo" w karruslu. |
Prawy Obraz | Poprawny identyfikator zasobu dla przycisku "zatrzymaj prawy" w karruslu. |
Wybrany postać
Wybrany znak postaci | Class.MeshPart który płynie nad głową postaci, aby zaznaczyć, że został wybrany. |
Rozmiar i pozycja
Wielkość | 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. |
Stosunek aspektu | Wartość float określająca względne szerokość i wysokość ACM. |
Punkt Anchora | Class.GuiObject.AnchorPoint|AnchorPoint ACM. |
Pozycja na ekranie | A UDim2 określający pozycję na ekranie ACM (pozycję, w której następuje jej zmiana, gdy jest otwarta). |
Pozycja poza ekranem | A UDim2 określający pozycję poza ekranem ACM (pozycję, w której następuje przesunięcie/zamknięcie, gdy otwarty/zamknięty). |
Dostosowanie przykładu
Poniższy kod przykładowy dostosowuje motyw ACM używając 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})