Il Menù contestuale dell'Avatar (ACM) rende più facile per gli utenti interagire tra loro.Quando l'ACM è abilitato nella tua esperienza, un utente può camminare fino al personaggio di un altro utente e cliccarci per aprire un piccolo menu con diverse opzioni predefinite.Il giocatore può inviare una Richiestadi amicizia, iniziare una chat privata, visualizzare il Profilodell'utente o salutare.
Dopo attivando l'ACM nella tua esperienza, puoi personalizzare l'ACM nei seguenti modi:
- Programmaticamente aprire e chiudere l'ACM per utenti specifici.
- Personalizza l'aspetto di ACM per creare un'interfaccia utente unica.
Abilita il menu contestuale dell'avatar
Il menu contestuale Avatar deve essere abilitato utilizzando l'opzione StarterGui:SetCore() "AvatarContextMenuEnabled" in un LocalScript .L'ACM è migliore utilizzato in esperienze in cui non esiste un comportamento predefinito per fare clic su altri utenti.
Usa il seguente esempio di codice per abilitare l'ACM in un LocalScript :
-- Esegui in uno script locale, idealmente all'interno di "StarterPlayerScripts"local StarterGui = game:GetService("StarterGui")StarterGui:SetCore("AvatarContextMenuEnabled", true)
Se devi determinare se l'ACM è abilitato, puoi usare il seguente codice per restituire un boolean sul stato attuale dell'ACM:
--Restituisce un booleano che indica se l'ACM è attualmente abilitato.StarterGui:GetCore(AvatarContextMenuEnabled)
Apri e chiudi l'ACM
Una volta abilitato, puoi aprire e chiudere il programma ACM in modo programmatico con StarterGui .
Per aprire il ACM in modo programmatico, usa il seguente codice:
-- Usa StarterGui:SetCore dove 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 attraverso lo scripting. Per impostazione predefinita, il menu ha le seguenti opzioni:
Opzione menu | Descrizione |
---|---|
Amico | Invia una richiesta di amicizia all'utente selezionato. |
Chat | Apre una conversazione privata con l'utente selezionato nella chat in-experience. |
Visualizza | Apre una finestra per ispezionare l'aspetto dell'utente selezionato. |
Onda | Inizia un'animazione di onda per l'utente selezionato. |
Una volta che l'ACM è aperto, l'utente può scorrere e selezionare altri utenti nella selezione del personaggio.I personaggi vengono ordinati in base alla distanza dal personaggio selezionato.Il menu si aggiorna solo quando viene aperto e l'elenco degli utenti disponibili si ripeterà quando si scorre.

Aggiungi opzioni menu
Una volta abilitato, le azioni specifiche per l'esperienza possono essere aggiunte all'ACM.Ad esempio, un'esperienza potrebbe consentire richieste di scambio, opzioni di aggiunta alla parte 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
-- Collega una funzione a un "BindableEvent"
local bindableEvent = Instance.new("BindableEvent")
local function onCustomACMAction(targetPlayer)
-- A questo punto, puoi chiamare InvokeServer() su una RemoteFunction per avvisare il server della selezione
print("ACM event selected by " .. player.Name .. " on " .. targetPlayer.Name)
end
bindableEvent.Event:Connect(onCustomACMAction)
-- Aggiungi l'opzione ACM utilizzando SetCore() con "AddAvatarContextMenuOption"
local options = {"Custom ACM Action", bindableEvent}
StarterGui:SetCore("AddAvatarContextMenuOption", options)
Rimuovi le opzioni del menu
Puoi rimuovere le opzioni personalizzate e predefinite di Aggiungi amico, Chat, Visualizza e Onda dalla ACM facendo riferimento al nome azione personalizzata o all'enumero predefinito Enum.AvatarContextMenuOption.
Usa il seguente codice per rimuovere un'opzione menu predefinita e personalizzata:
-- Rimuovi l'opzione "Azione ACM personalizzata"StarterGui:SetCore("RemoveAvatarContextMenuOption", "Custom ACM Action")-- Rimuovi l'opzione predefinita "Amico" facendo riferimento all'opzione AvatarContextMenuOption.Friend EnumStarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)
Personalizza l'aspetto del menu
Per modificare 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. Etichetta di nome: il nome utente del personaggio con cui si interagisce.
B. Frame dei pulsanti: contiene tutti i pulsanti ACM.
C. Pulsanti: pulsanti individuali per le azioni ACM predefinite o personalizzate.
Parametri dell'aspetto
Questi sono i parametri di personalizzazione con l'ACM:
Sfondo
Colore di sfondo | Un Color3 per lo sfondo generale dell'ACM (più utile quando non si utilizza un'immagine di sfondo). |
Trasparenza di fondo | Valore di trasparenza (0–1) per lo sfondo generale dell'ACM (più utile quando non si utilizza un'immagine di sfondo). |
Immagine di background | Un ID risorsa valido di un'immagine per lo sfondo ACM. |
Trasparenza dell'immagine di background | Valore di trasparenza (0–1) per l'immagine di sfondo. |
Tipo di scala dell'immagine di sfondo | Un Enum.ScaleType elenco per la ridimensionamento dell'immagine di sfondo. |
Centro di immagine di sfondo | Un Rect specificare il centro di un'immagine a nove strati quando BackgroundImageScaleType è impostato su Enum.ScaleType.Slice . |
Tag di nome
ColorTagNome | Un Color3 per la barra che mostra quale giocatore è stato interagito. |
NomeUnderlineColor | Un Color3 per la linea sottile tra il tag di nome e i pulsanti di azione. |
Frame del pulsante
ButtonFrameColor | Un Color3 per la sezione (frame) che contiene i pulsanti di azione. |
Trasparenza del ButtonFrame | Valore di trasparenza (0–1) per la sezione del frame del pulsante. |
Pulsante
Colore del pulsante | Un Color3 per lo sfondo dei pulsanti d'azione dell'ACM. |
Trasparenza pulsante | Valore di trasparenza (0–1) per il colore di sfondo dei pulsanti d'azione. |
Colore di passaggio del pulsante | Un Color3 per lo stato "sorvolare" dei pulsanti d'azione. |
Trasparenza del Passaggio del Pulsante | Valore di trasparenza (0–1) per il colore "sorvolare" dei pulsanti di azione. |
Colore Sottolineatura Pulsante | Un Color3 per la linea sottile che separa ogni pulsante di azione. |
ButtonImage | Un ID risorsa valido di un'immagine per lo sfondo dei pulsanti. |
Tipo di scala dell'immagine del pulsante | Un Enum.ScaleType elenco per la ridimensionamento dell'immagine del pulsante. |
ButtonImageSliceCentro | Un Rect specificare il centro di un'immagine a nove fette quando ButtonImageScaleType è impostato su Enum.ScaleType.Slice . |
Testo
Carattere | Un valore enum Enum.Font per il tag del nome e il testo del pulsante. |
Colore del testo | Un Color3 per tutto il testo all'interno dell'ACM. |
Scala del testo | Un valore di galleggiante per ridimensionare le dimensioni del testo predefinite di ciascun elemento. |
Immagine varia
LasciaMenuImage | Un ID risorsa di un'immagine per il pulsante di chiusura ACM. |
Immagine di scorrimento sinistra | Un ID risorsa di un'immagine per il pulsante "scroll left" della carousel. |
Immagine di scorrimento destra | Un ID risorsa valido di un'immagine per il pulsante "scroll right" della carousel. |
Personaggio selezionato
Indicatore di carattere selezionato | Il MeshPart che fluttua sopra la testa di un personaggio per indicare che sono selezionati. |
Dimensione e posizione
Dimensioni | Un UDim2 per la dimensione complessiva dell'ACM. |
MinDimensione | Un Vector2 che specifica la dimensione minima dell'ACM. |
Size Massimo | Un Vector2 che specifica la dimensione massima dell'ACM. |
Rapporto Aspecto | Un valore galleggiante che specifica la larghezza e l'altezza relative dell'ACM. |
Punto di ancoraggio | Il AnchorPoint dell'ACM. |
Posizione sullo schermo | Un UDim2 che specifica la posizione sullo schermo dell'ACM (la posizione in cui si tweens quando viene aperto). |
Posizione dello schermo off | Un UDim2 che specifica la posizione off-screen dell'ACM (la posizione in cui si tweens da/a quando aperto/chiudi). |
Personalizzazione di 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})
