Il Avatar Context Menu (ACM) rende più facile per gli utenti interagire tra di loro. Quando l'ACM è abilitato nella tua esperienza, un utente può camminare fino al personaggio di un altro utente e fare clic su di loro per aprire un piccolo menu con diverse opzioni predefinite. Il giocatore può inviare una Richiestadi amico, iniziare una chat privata o visualizzare il Profilodell'utente, o wave.
Dopo aver abilitato l'ACM nella tua esperienza, puoi personalizzare l'ACM in modo segue:
- Programmaticamente aprire e chiudere l'ACM per utenti specifici.
- Personalizza l'aspetto ACM per creare un'interfaccia utente unica.
Abilitazione del menu contestuale avatar
Il menu contestuale Avatar deve essere abilitato utilizzando l'opzione StarterGui:SetCore() in un LocalScript . L'ACM è meglio utilizzato nelle esperienze in cui non ci sono comportamenti predefiniti per fare clic su altri utenti.
Usa il seguente esempio di codice per abilitare l'ACM in un LocalScript :
-- Esegui in un LocalScript, idealmente all'interno di "StarterPlayerScripts"local StarterGui = game:GetService("StarterGui")StarterGui:SetCore("AvatarContextMenuEnabled", true)
Se è necessario rilevare se l'ACM è abilitato, puoi utilizzare il seguente codice per restituire un boolettino sul stato attuale dell'ACM:
--Restituisce un booleto che indica se l'ACM è attualmente abilitato.StarterGui:GetCore(AvatarContextMenuEnabled)
Apertura e chiusura dell'ACM
Una volta abilitato, puoi aprire e chiudere il programma ACM in modo programmatico con StarterGui .
Per aprire programmaticamente l'ACM, usa il seguente codice:
-- Usa StarterGui:SetCore in cui targetPlayer è un oggetto Player validoStarterGui:SetCore("AvatarContextMenuTarget", targetPlayer)
Per chiudere programmaticamente l'ACM, usa il seguente codice:
StarterGui:SetCore("AvatarContextMenuTarget", nil)
Opzioni menu
Puoi aggiungere e rimuovere azioni tramite lo scripting. Per impostazione predefinita, il menu ha le seguenti opzioni:
Opzione menu | Descrizione |
---|---|
Amico | Invia una richiesta di amico all'utente selezionato. |
Chat | Apre una conversazione privata con l'utente selezionato nella chat in-experience. |
Visualizza | Apre una finestra per ispezionare l'aspetto del utente selezionato. |
Onda | Inizia un'animazione di ondata per l'utente selezionato. |
Una volta aperto l'ACM, l'utente può scorrere e selezionare altri utenti sulla selezione del personaggio. Gli utenti vengono ordinati in base alla distanza dal personaggio selezionato. Il menu si aggiorna solo quando viene aperto e la lista di utenti disponibili si ripetrà quando si scorre.
Aggiungere opzioni menu
Una volta abilitato, le azioni specifiche dell'esperienza possono essere aggiunte alle ACM. Ad esempio, un'esperienza potrebbe consentire richieste di scambio, opzioni di aggiungimento al gruppo o altre interazioni speciali.
L'esempio seguente mostra come aggiungere un'azione personalizzata al menu contestuale dell'Avatar:
local Players = game:GetService("Players")
local StarterGui = game:GetService("StarterGui")
local player = Players.LocalPlayer
-- Connetti una funzione a "BindableEvent"
local bindableEvent = Instance.new("BindableEvent")
local function onCustomACMAction(targetPlayer)
-- A questo punto, potresti chiamare InvokeServer() su una funzione remota per allertare il server della selezione
print("ACM event selected by " .. player.Name .. " on " .. targetPlayer.Name)
end
bindableEvent.Event:Connect(onCustomACMAction)
-- Aggiungi l'opzione ACM usando SetCore() con "AddAvatarContextMenuOption"
local options = {"Custom ACM Action", bindableEvent}
StarterGui:SetCore("AddAvatarContextMenuOption", options)
Rimozione delle opzioni del menu
Puoi rimuovere le opzioni Aggiungi amico, Chat, Visualizza e Wave personalizzate dall'ACM facendo riferimento al nome azione personalizzato o all'еньuco Enum.AvatarContextMenuOption .
Usa il seguente codice per rimuovere un'opzione di menu predefinita e personalizzata:
-- Rimuovi l'opzione "Azione ACM personalizzata"StarterGui:SetCore("RemoveAvatarContextMenuOption", "Custom ACM Action")-- Rimuovi l'opzione "Amico" predefinita facendo riferimento all'AvatarContextMenuOption.Friend EnumStarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)
Personalizzare l'aspetto del menu
Per cambiare l'aspetto del menu contestuale dell'Avatar, chiama StarterGui:SetCore() con l'opzione "AvatarContextMenuTheme", fornendo una tabella di parametri e valori per regolare l'aspetto del menu.
L'interfaccia utente ACM include le seguenti sezioni:
A. Nome del tag: il nome dell'utente del personaggio con cui interagire.
B. Frame del pulsante: Contiene tutti i pulsanti ACM.
C. pulsanti: pulsanti individuali per azioni ACM predefinite o personalizzate.
Parametri dell'aspetto
Questi sono i parametri di personalizzazione con l'ACM:
Background
Colore di sfondo | Un Color3 per il sottofondo generale dell'ACM (più utile quando non si utilizza un'immagine di sottofondo). |
Trasparenza di sfondo | Valore di trasparenza (0-1) per il background generale dell'ACM (molto utile quando non si usa un'immagine di sfondo). |
Immagine di sfondo | Un ID risorsa valido di un'immagine per il background ACM. |
Trasparenza dell'immagine di sfondo | Valore di trasparenza (0-1) per l'immagine di sfondo. |
Tipo di immagine di sfondo | Un Enum.ScaleType enum per laScalatura dell'immagine di sottofondo. |
Centro immagine di sfondo | Un Rect che specifica il centro di un'immagine a nove trame quando BackgroundImageScaleType è impostato su Enum.ScaleType.Slice . |
Tag nome
Colore del nome | Un Color3 per la barra che mostra con quale giocatore interagisci. |
Colore di sottolineatura del nome | Una Color3 per la linea sottile tra il tag del nome e i pulsanti di azione. |
Frame del pulsante
Colore del pulsante | Un Color3 per la sezione (Frame) contenente i pulsanti di azione. |
Trasparenza pulsante | Valore di trasparenza (0-1) per la sezione pulsante. |
Pulsante
Colore pulsante | Un Color3 per il background dei pulsanti di azione dell'ACM. |
Trasparenza pulsante | Valore di trasparenza (0-1) per il colore di sfondo dei pulsanti di azione. |
Colore di avvolgimento del pulsante | Un Color3 per lo stato " sorvolare" dei pulsanti di azione. |
Trasparenza pulsante | Valore di trasparenza (0-1) per il colore "sorvolare" dei pulsanti di azione. |
Colore di sottolineatura del pulsante | Un Color3 per la linea sottile che separa ogni pulsante di azione. |
ButtonImage | Un ID risorsa valido di un'immagine per il background dei pulsanti. |
Tipo di ridimensionamento pulsante | Un Enum.ScaleType enum per laScalatura pulsante. |
Centro immagine pulsante | Un Rect che specifica il centro di un'immagine a nove trame quando ButtonImageScaleType è impostato su Enum.ScaleType.Slice . |
Testo
Carattere | Un valore Enum.Font per il nome del tag e del testo del pulsante. |
Colore di testo | Un Color3 per tutti i testi all'interno dell'ACM. |
Dimensione del testo | Un valore fluttuante per ridimensionare le dimensioni di testo predefinite di ciascun elemento. |
Diversi immagine
LasciaMenuImage | Un ID risorsa di un'immagine per il pulsante di chiusura ACM. |
Scorri immagine sinistra | Un ID risorsa di un'immagine per il pulsante "scorri a sinistra". |
Scorri immagine destra | Un ID risorsa valido di un'immagine per il pulsante "ruota destra". |
Personaggio selezionato
Indicatore di personaggio selezionato | Il MeshPart che fluttua sopra la testa di un personaggio per indicare che sono selezionati. |
Dimensione e posizione
Dimensione | Un UDim2 per la dimensione complessiva dell'ACM. |
Min dimensioni | Un Vector2 che specifica la dimensione minima dell'ACM. |
Dimensione massima | Un Vector2 che specifica la dimensione massima dell'ACM. |
Rapporto di Aspect | Un valore fluttuante che specifica la larghezza e l'altezza relativa dell'ACM. |
Punto di ancoraggio | Il AnchorPoint di ACM. |
Posizione sullo schermo | Un UDim2 che specifica la posizione sullo schermo della posizione ACM (la posizione in cui si ingrandisce quando viene aperto). |
Posizione dello schermo | Un UDim2 che specifica la posizione off-screen del ACM (la posizione in cui si attiva/chiude quando viene aperto/chiuso). |
Personalizzazione dell'esempio
Il seguente esempio di codice personalizza il tema ACM utilizzando alcuni parametri di base:
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})