O Menu de Conjunto de Avatar (ACM) facilita a interação entre usuários. Quando o ACM estiver ativado na sua experiência, um usuário pode caminhar até outro usuário's personagem e clicar nele para abrir um pequeno menu com várias opções padrão. O jogador pode enviar uma solicitar / pedirde amigo, iniciar uma conversa privada ou ver o perfil do usuário. O jogador pode enviar uma solicitação de onda.
Depois de habilitar o ACM em sua experiência, você pode personalizar o ACM da seguinte maneira:
- Programaticamente aberto e fechado o ACM para usuários específicos.
- Personalize a aparência do ACM para criar uma interface de usuário única.
Habilitando o Menu de Contexto de Avatar
O Menu de Contexto do Avatar deve ser habilitado usando a opção StarterGui:SetCore() "AvatarContextMenuEnabled" em um LocalScript . O ACM é melhor usado em experiências onde não há comportamento predefinido para clicar em outros usuários.
Use o seguinte código de exemplo para habilitar o ACM em um LocalScript :
-- Execute em um LocalScript, idealmente dentro de "StarterPlayerScripts"local StarterGui = game:GetService("StarterGui")StarterGui:SetCore("AvatarContextMenuEnabled", true)
Se você precisar detectar se o ACM está habilitado, você pode usar o seguinte código para retornar um booleano no status atual do ACM:
--Retorna um boolo indicando se o ACM está atualmente habilitado.StarterGui:GetCore(AvatarContextMenuEnabled)
Abrindo e Fechando o ACM
Uma vez ativado, você pode abrir e fechar o programa ACMaticamente com StarterGui .
Para abrir programaticamente o ACM, use o seguinte código:
-- Use StarterGui:SetCore onde o targetPlayer é um Objetode Jogador válidoStarterGui:SetCore("AvatarContextMenuTarget", targetPlayer)
Para fechar programaticamente o ACM, use o seguinte código:
StarterGui:SetCore("AvatarContextMenuTarget", nil)
Opções de Menu
Você pode adicionar e remover ações através de scripting. Por padrão, o menu tem as seguintes opções:
Opção de Menu | Descrição |
---|---|
Amigo | Envia um pedido de amigo para o usuário selecionado. |
chat/conversa | Abre uma conversa privada com o usuário selecionado no chat na experiência. |
Visualizar | Abre uma janela para inspeitar a aparência do usuário selecionado. |
Onda | Inicia uma animação de onda para o usuário selecionado. |
Uma vez que o ACM está aberto, o usuário pode rolar e selecionar outros usuários na roda de seleção de personagens. Os personagens são classificados com base na distância para o personagem selecionado. O menu só é atualizado quando aberto e a lista de usuários disponíveis será repetida ao rolar.
Adicionando Opções de Menu
Uma vez ativado, ações específicas de experiência podem ser adicionadas ao ACM. Por exemplo, uma experiência pode permitir solicitações de comércio, opções de grupo ou outras interações especiais.
O seguinte exemplo mostra como adicionar uma ação personalizada ao Menu de Contexto do Avatar:
local Players = game:GetService("Players")
local StarterGui = game:GetService("StarterGui")
local player = Players.LocalPlayer
-- Conecte uma função a um "BindableEvent"
local bindableEvent = Instance.new("BindableEvent")
local function onCustomACMAction(targetPlayer)
-- Neste ponto, você pode chamar InvokeServer() em uma Função Remota para alertar o servidor da seleção
print("ACM event selected by " .. player.Name .. " on " .. targetPlayer.Name)
end
bindableEvent.Event:Connect(onCustomACMAction)
-- Adicione a opção ACM usando SetCore() com "AddAvatarContextMenuOption"
local options = {"Custom ACM Action", bindableEvent}
StarterGui:SetCore("AddAvatarContextMenuOption", options)
Removendo Opções de Menu
Você pode remover as opções de Adicionar Amigo, chat/conversa, Ver e Onda personalizadas do ACM ao referenciar o nome de ação personalizado ou o índice padrão Enum.AvatarContextMenuOption.
Use o seguinte código para remover uma opção de menu padrão e personalizado:
-- Remova a opção "Ação ACM Personalizada"StarterGui:SetCore("RemoveAvatarContextMenuOption", "Custom ACM Action")-- Remova a opção "Amigo" padrão ao referenciar o AvatarContextMenuOption.Friend EnumStarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)
Personalizando a Aparência do Menu
Para alterar a aparência do Menu de Contexto do Avatar, chame StarterGui:SetCore() com a opção "AvatarContextMenuTheme", fornecendo uma tabela de parâmetros e valores para ajustar a aparência do menu.
A interface do usuário da ACM inclui as seguintes seções:
A. Nome de Usuário: O nome do usuário com quem o personagem está interagindo.
B. Frame de Botão: Contém todos os botões ACM.
C. Botões: Botões individuais para as ações padrão ou personalizadas do ACM.
Parâmetros de Aparência
Esses são os parâmetros de personalização com o ACM:
Fundo
Cor de fundo | Um Color3 para o fundo geral do ACM (mais útil quando não estiver usando uma imagem de fundo). |
Transparência de Fundo | Valor de transparência (0-1) para o fundo geral do ACM (mais útil quando não estiver usando uma imagem de fundo). |
Imagem de fundo | Um ID de recurso válido de uma imagem para o fundo ACM. |
Transparência de Imagem de Fundo | Valor de transparência (0-1) para a imagem de fundo. |
Tipo de escala de imagem de fundo | Um Enum.ScaleType 枚 para escalonamento de imagem de fundo. |
Rastro de Imagem de Fundo | Um Rect especificando o centro de uma imagem de novembro quando o Tipo de Imagem de Fundo é definido como Enum.ScaleType.Slice. |
Nome de Tag
Cor do Tag de Nome | Um Color3 para a barra mostrando com qual jogador está interagindo. |
Cor de Sublinho de Nome | Uma Color3 para a linha fina entre a etiqueta de nome e os botões de ação. |
Armação de Botão
Cor do Quadro de Botões | Um Color3 para a seção (quadro) contendo os botões de ação. |
Transparência do Botão | Valor de transparência (0-1) para a seção de quadro de botão. |
Botão
Cor do Botão | Um Color3 para o fundo dos botões de ação do ACM. |
Transparência do Botão | Valor de transparência (0-1) para a cor de fundo dos botões de ação. |
Cor do Botão | Um Color3 para o estado " flutuar" dos botões de ação. |
Transparência do Botão | Valor de transparência (0-1) para a cor " flutuar" dos botões de ação. |
Cor de Sublinho de Botão | Um Color3 para a linha fina que separa cada botão de ação. |
Imagem de Botão | Um ID de ativo válido de uma imagem para o fundo dos botões. |
Tipo de escala de imagem de botão | Um Enum.ScaleType enum para escalonamento de imagem de botão. |
Centro de Corte de Imagem de Botão | Um Rect especificando o centro de uma imagem de novembro quando o ButtonImageScaleType estiver definido como Enum.ScaleType.Slice. |
Texto
Fonte | Um valor Enum.Font para o nome da etiqueta e texto do botão. |
Cor de Texto | Um Color3 para todo o texto dentro do ACM. |
Escala de Texto | Um valor flutuante para escalar os tamanhos de texto padrão de cada elemento. |
Várias Imagens
Sair da Imagem | Um ID de imagem de uma imagem para o botão de fechamento ACM. |
Imagem de rolagem esquerda | Um ID de imagem de uma imagem para o botão "role para a esquerda". |
Imagem de ScrollRight | Um ID de ativo válido de uma imagem para o botão "role para a direita" do carrossel. |
Personagem Selecionado
Índice de Personagem Selecionado | O MeshPart que flutua acima da cabeça de um personagem para indicar que eles são selecionados. |
Tamanho e Posição
Tamanho | Um UDim2 para o tamanho geral do ACM. |
Tamanho Mínimo | Um Vector2 especificando o tamanho mínimo do ACM. |
Tamanho Máximo | Um Vector2 especificando o tamanho máximo do ACM. |
Rácio de Aspecto | Um valor flutuante especificando a largura e altura relativa do ACM. |
Ponto de Ancoragem | O AnchorPoint do ACM. |
Posição na Tela | Um UDim2 especificando a posição na tela do ACM (a posição onde ele sobe quando aberto). |
Posição fora da tela | Um UDim2 especificando a posição fora da tela do ACM (a posição onde ele sobe/desce quando aberto/fechado). |
Exemplo de Personalização
O seguinte código de exemplo personaliza o tema ACM usando alguns parâmetros básicos:
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})